Commit 16e30392 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

decoder: remove invalid call, fix races

Calling input_DecoderStopWait() from the decoder thread makes no sense
as it signals a condition variable that only the decoder thread itself
would ever wait on.

More importantly, the call breaks assumptions made by the input thread.
For instance, input_DecoderDecode() assumes p_owner->b_waiting is only
changed by the decoder owner (i.e. input) thread.
parent 7b91295f
...@@ -878,8 +878,6 @@ static void *DecoderThread( void *p_data ) ...@@ -878,8 +878,6 @@ static void *DecoderThread( void *p_data )
* If you need one, be sure to push cleanup of p_block. */ * If you need one, be sure to push cleanup of p_block. */
bool end_wait = !p_block || p_block->i_flags & BLOCK_FLAG_CORE_EOS; bool end_wait = !p_block || p_block->i_flags & BLOCK_FLAG_CORE_EOS;
DecoderSignalWait( p_dec, end_wait ); DecoderSignalWait( p_dec, end_wait );
if (end_wait)
input_DecoderStopWait( p_dec );
if( p_block ) if( p_block )
{ {
......
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