vlc | branch: master | Thomas Guillem <[email protected]> | Fri Jun 26 13:22:04 2020 +0200| [3df9e5cf9f0c5dae8406dfe00b646038bc8775df] | committer: Thomas Guillem
decoder: always release the vout The vout was released only when already started. This fixes the "assert( p_resource->i_vout == 0 || p_resource->p_vout_free == p_resource->pp_vout[0] );" from input_resource_SetInput() when the vout failed to start. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3df9e5cf9f0c5dae8406dfe00b646038bc8775df --- src/input/decoder.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/input/decoder.c b/src/input/decoder.c index 0c216bfca4..22b0bd3734 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -1999,15 +1999,18 @@ static void DeleteDecoder( vlc_input_decoder_t *p_owner ) case VIDEO_ES: { vout_thread_t *vout = p_owner->p_vout; - if (vout != NULL && p_owner->vout_thread_started) + if (vout != NULL) { - /* Reset the cancel state that was set before joining the decoder - * thread */ - if (p_owner->out_pool) - picture_pool_Cancel( p_owner->out_pool, false ); - vout_StopDisplay(vout); - p_owner->vout_thread_started = false; - decoder_Notify(p_owner, on_vout_stopped, vout); + if( p_owner->vout_thread_started) + { + /* Reset the cancel state that was set before joining the + * decoder thread */ + if (p_owner->out_pool) + picture_pool_Cancel( p_owner->out_pool, false ); + vout_StopDisplay(vout); + p_owner->vout_thread_started = false; + decoder_Notify(p_owner, on_vout_stopped, vout); + } input_resource_PutVout(p_owner->p_resource, vout); } break; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
