Commit 4b0d2358 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

decoder: unblock picture allocation at exit

parent 5ac9185d
...@@ -1761,6 +1761,16 @@ void input_DecoderDelete( decoder_t *p_dec ) ...@@ -1761,6 +1761,16 @@ void input_DecoderDelete( decoder_t *p_dec )
vlc_mutex_lock( &p_owner->lock ); vlc_mutex_lock( &p_owner->lock );
p_owner->b_waiting = false; p_owner->b_waiting = false;
vlc_cond_signal( &p_owner->wait_request ); vlc_cond_signal( &p_owner->wait_request );
/* If the video output is paused or slow, or if the picture pool size was
* under-estimated (e.g. greedy video filter, buggy decoder...), the
* the picture pool may be empty, and the decoder thread or any decoder
* module worker threads may be stuck waiting for free picture buffers.
*
* This unblocks the thread, allowing the decoder module to join all its
* worker threads (if any) and the decoder thread to terminate. */
if( p_owner->p_vout != NULL )
vout_Cancel( p_owner->p_vout );
vlc_mutex_unlock( &p_owner->lock ); vlc_mutex_unlock( &p_owner->lock );
vlc_join( p_owner->thread, NULL ); vlc_join( p_owner->thread, NULL );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment