Commit 40fde063 authored by Felix Abecassis's avatar Felix Abecassis Committed by Jean-Baptiste Kempf

input: remove sout decoder buffering.

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent d6ee0fb3
...@@ -139,9 +139,6 @@ struct decoder_owner_sys_t ...@@ -139,9 +139,6 @@ struct decoder_owner_sys_t
bool b_first; bool b_first;
bool b_full; bool b_full;
int i_count; int i_count;
block_t *p_block;
block_t **pp_block_next;
} buffer; } buffer;
/* Flushing */ /* Flushing */
...@@ -544,12 +541,6 @@ void input_DecoderStartBuffering( decoder_t *p_dec ) ...@@ -544,12 +541,6 @@ void input_DecoderStartBuffering( decoder_t *p_dec )
p_owner->buffer.b_full = false; p_owner->buffer.b_full = false;
p_owner->buffer.i_count = 0; p_owner->buffer.i_count = 0;
assert( !p_owner->buffer.p_block );
p_owner->buffer.p_block = NULL;
p_owner->buffer.pp_block_next = &p_owner->buffer.p_block;
p_owner->b_buffering = true; p_owner->b_buffering = true;
vlc_cond_signal( &p_owner->wait_request ); vlc_cond_signal( &p_owner->wait_request );
...@@ -859,7 +850,6 @@ static decoder_t * CreateDecoder( vlc_object_t *p_parent, ...@@ -859,7 +850,6 @@ static decoder_t * CreateDecoder( vlc_object_t *p_parent,
p_owner->buffer.b_first = true; p_owner->buffer.b_first = true;
p_owner->buffer.b_full = false; p_owner->buffer.b_full = false;
p_owner->buffer.i_count = 0; p_owner->buffer.i_count = 0;
p_owner->buffer.p_block = NULL;
p_owner->b_flushing = false; p_owner->b_flushing = false;
...@@ -1486,44 +1476,14 @@ static void DecoderPlaySout( decoder_t *p_dec, block_t *p_sout_block ) ...@@ -1486,44 +1476,14 @@ static void DecoderPlaySout( decoder_t *p_dec, block_t *p_sout_block )
vlc_mutex_lock( &p_owner->lock ); vlc_mutex_lock( &p_owner->lock );
if( p_owner->b_buffering || p_owner->buffer.p_block ) if( p_owner->b_buffering )
{
block_ChainLastAppend( &p_owner->buffer.pp_block_next, p_sout_block );
p_owner->buffer.i_count++;
/* XXX it is important to be full after the first one */
if( p_owner->buffer.i_count > 0 )
{ {
p_owner->buffer.b_full = true; p_owner->buffer.b_full = true;
vlc_cond_signal( &p_owner->wait_acknowledge ); vlc_cond_signal( &p_owner->wait_acknowledge );
} }
}
for( ;; )
{
bool b_has_more = false;
bool b_reject = DecoderWaitUnblock( p_dec ); bool b_reject = DecoderWaitUnblock( p_dec );
if( p_owner->b_buffering )
{
vlc_mutex_unlock( &p_owner->lock );
return;
}
/* */
if( p_owner->buffer.p_block )
{
p_sout_block = p_owner->buffer.p_block;
p_owner->buffer.p_block = p_sout_block->p_next;
p_owner->buffer.i_count--;
b_has_more = p_owner->buffer.p_block != NULL;
if( !b_has_more )
p_owner->buffer.pp_block_next = &p_owner->buffer.p_block;
}
p_sout_block->p_next = NULL;
DecoderFixTs( p_dec, &p_sout_block->i_dts, &p_sout_block->i_pts, DecoderFixTs( p_dec, &p_sout_block->i_dts, &p_sout_block->i_pts,
&p_sout_block->i_length, NULL, INT64_MAX ); &p_sout_block->i_length, NULL, INT64_MAX );
...@@ -1533,16 +1493,6 @@ static void DecoderPlaySout( decoder_t *p_dec, block_t *p_sout_block ) ...@@ -1533,16 +1493,6 @@ static void DecoderPlaySout( decoder_t *p_dec, block_t *p_sout_block )
sout_InputSendBuffer( p_owner->p_sout_input, p_sout_block ); // FIXME --VLC_TS_INVALID inspect stream_output/* sout_InputSendBuffer( p_owner->p_sout_input, p_sout_block ); // FIXME --VLC_TS_INVALID inspect stream_output/*
else else
block_Release( p_sout_block ); block_Release( p_sout_block );
if( !b_has_more )
break;
vlc_mutex_lock( &p_owner->lock );
if( !p_owner->buffer.p_block )
{
vlc_mutex_unlock( &p_owner->lock );
break;
}
}
} }
#endif #endif
...@@ -1552,14 +1502,6 @@ static void DecoderFlushBuffering( decoder_t *p_dec ) ...@@ -1552,14 +1502,6 @@ static void DecoderFlushBuffering( decoder_t *p_dec )
decoder_owner_sys_t *p_owner = p_dec->p_owner; decoder_owner_sys_t *p_owner = p_dec->p_owner;
vlc_assert_locked( &p_owner->lock ); vlc_assert_locked( &p_owner->lock );
if( p_owner->buffer.p_block )
{
block_ChainRelease( p_owner->buffer.p_block );
p_owner->buffer.i_count = 0;
p_owner->buffer.p_block = NULL;
p_owner->buffer.pp_block_next = &p_owner->buffer.p_block;
}
} }
#ifdef ENABLE_SOUT #ifdef ENABLE_SOUT
......
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