vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jan 23 
22:30:59 2019 +0200| [9124d96dfc1f6a85d49e2986f0d710198ae3bb2f] | committer: 
Rémi Denis-Courmont

spu: do nothing if input does not change

An input thread must be created before it is attached to the SPU,
and detached from the SPU before it is destroyed. As such, if the
already attached input pointer equals the newly attached input, we can
infer that it is actually the same input. That is then a no-op.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9124d96dfc1f6a85d49e2986f0d710198ae3bb2f
---

 src/video_output/vout_subpictures.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/video_output/vout_subpictures.c 
b/src/video_output/vout_subpictures.c
index 2d72954c65..905159c143 100644
--- a/src/video_output/vout_subpictures.c
+++ b/src/video_output/vout_subpictures.c
@@ -1396,15 +1396,15 @@ void spu_Destroy(spu_t *spu)
 void spu_Attach(spu_t *spu, input_thread_t *input)
 {
     vlc_mutex_lock(&spu->p->lock);
+    if (spu->p->input != input) {
+        UpdateSPU(spu, NULL);
 
-    UpdateSPU(spu, NULL);
-
-    spu->p->input = input;
-
-    if (spu->p->text)
-        FilterRelease(spu->p->text);
-    spu->p->text = SpuRenderCreateAndLoadText(spu);
+        spu->p->input = input;
 
+        if (spu->p->text)
+            FilterRelease(spu->p->text);
+        spu->p->text = SpuRenderCreateAndLoadText(spu);
+    }
     vlc_mutex_unlock(&spu->p->lock);
 }
 

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to