vlc | branch: master | Thomas Guillem <[email protected]> | Wed Nov 18 14:32:00 2015 +0100| [5ac9185d9320e81bfe92d360d528e71d8c870a42] | committer: Rémi Denis-Courmont
vout: add vout_Cancel This function will cancel the decoder picture pool. Signed-off-by: Rémi Denis-Courmont <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5ac9185d9320e81bfe92d360d528e71d8c870a42 --- src/video_output/control.h | 1 + src/video_output/video_output.c | 14 ++++++++++++++ src/video_output/vout_control.h | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/src/video_output/control.h b/src/video_output/control.h index 159e5f8..eff9aa1 100644 --- a/src/video_output/control.h +++ b/src/video_output/control.h @@ -29,6 +29,7 @@ enum { VOUT_CONTROL_INIT, VOUT_CONTROL_CLEAN, VOUT_CONTROL_REINIT, /* cfg */ + VOUT_CONTROL_CANCEL, #if 0 /* */ diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 8a70ce7..1c62d9b 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -303,6 +303,12 @@ static void VoutDestructor(vlc_object_t *object) } /* */ +void vout_Cancel(vout_thread_t *vout) +{ + vout_control_PushVoid(&vout->p->control, VOUT_CONTROL_CANCEL); + vout_control_WaitEmpty(&vout->p->control); +} + void vout_ChangePause(vout_thread_t *vout, bool is_paused, mtime_t date) { vout_control_cmd_t cmd; @@ -1447,6 +1453,11 @@ static int ThreadReinit(vout_thread_t *vout, return VLC_SUCCESS; } +static void ThreadCancel(vout_thread_t *vout) +{ + picture_pool_Cancel(vout->p->decoder_pool); +} + static int ThreadControl(vout_thread_t *vout, vout_control_cmd_t cmd) { switch(cmd.type) { @@ -1466,6 +1477,9 @@ static int ThreadControl(vout_thread_t *vout, vout_control_cmd_t cmd) if (ThreadReinit(vout, cmd.u.cfg)) return 1; break; + case VOUT_CONTROL_CANCEL: + ThreadCancel(vout); + break; case VOUT_CONTROL_SUBPICTURE: ThreadDisplaySubpicture(vout, cmd.u.subpicture); cmd.u.subpicture = NULL; diff --git a/src/video_output/vout_control.h b/src/video_output/vout_control.h index 2cbb9f9..2c73c9a 100644 --- a/src/video_output/vout_control.h +++ b/src/video_output/vout_control.h @@ -52,6 +52,11 @@ void vout_Flush( vout_thread_t *p_vout, mtime_t i_date ); */ void vout_Reset( vout_thread_t *p_vout ); +/* + * Cancel the vout, it won't return any pictures after this call. + */ +void vout_Cancel( vout_thread_t *p_vout ); + /** * This function will force to display the next picture while paused */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
