[vlc-commits] vout: kill the control queue from vout_Close()

Rémi Denis-Courmont git at videolan.org
Sun Jan 27 22:10:15 CET 2019


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Jan 27 21:52:45 2019 +0200| [fa96f7d6ca87fe60881a86aaaf4aeef80d897aaf] | committer: Rémi Denis-Courmont

vout: kill the control queue from vout_Close()

...like the snapshot queue. This makes no practical differences... yet.

There are only two ways that the video output (control) thread can end:
- vout_Request() requests REINIT, then ThreadReinit() fails;
  vout_Close() will be called.
- vout_Close() requests CLEAN and the ensuing ThreadStop() completes.

Either way, we will hit the vlc_join(). This is a suitable place to
mark the "death" of the control queue.

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

 src/video_output/video_output.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 24076da552..ef9d36c7bc 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1618,7 +1618,6 @@ static void *Thread(void *object)
 
 out:
     vout->p->dead = true;
-    vout_control_Dead(&vout->p->control);
     return NULL;
 }
 
@@ -1641,6 +1640,7 @@ void vout_Close(vout_thread_t *vout)
     vout_snapshot_End(vout->p->snapshot);
 
     vout_control_PushVoid(&vout->p->control, VOUT_CONTROL_CLEAN);
+    vout_control_Dead(&vout->p->control);
     vlc_join(vout->p->thread, NULL);
 
     vout_chrono_Clean(&vout->p->render);



More information about the vlc-commits mailing list