vlc | branch: master | Felix Abecassis <[email protected]> | Wed Dec 11 11:46:09 2013 +0100| [0e5576b3057aab9aaef4bd7d5c317f9faf54b508] | committer: Jean-Baptiste Kempf
input: remove audio decoder buffering. Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0e5576b3057aab9aaef4bd7d5c317f9faf54b508 --- src/input/decoder.c | 60 ++++++--------------------------------------------- 1 file changed, 6 insertions(+), 54 deletions(-) diff --git a/src/input/decoder.c b/src/input/decoder.c index 65397aa..3d57898 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -146,9 +146,6 @@ struct decoder_owner_sys_t subpicture_t *p_subpic; subpicture_t **pp_subpic_next; - block_t *p_audio; - block_t **pp_audio_next; - block_t *p_block; block_t **pp_block_next; } buffer; @@ -169,7 +166,6 @@ struct decoder_owner_sys_t }; #define DECODER_MAX_BUFFERING_COUNT (4) -#define DECODER_MAX_BUFFERING_AUDIO_DURATION (AOUT_MAX_PREPARE_TIME) #define DECODER_MAX_BUFFERING_VIDEO_DURATION (1*CLOCK_FREQ) /* Pictures which are DECODER_BOGUS_VIDEO_DELAY or more in advance probably have @@ -558,7 +554,7 @@ void input_DecoderStartBuffering( decoder_t *p_dec ) p_owner->buffer.i_count = 0; assert( !p_owner->buffer.p_picture && !p_owner->buffer.p_subpic && - !p_owner->buffer.p_audio && !p_owner->buffer.p_block ); + !p_owner->buffer.p_block ); p_owner->buffer.p_picture = NULL; p_owner->buffer.pp_picture_next = &p_owner->buffer.p_picture; @@ -566,9 +562,6 @@ void input_DecoderStartBuffering( decoder_t *p_dec ) p_owner->buffer.p_subpic = NULL; p_owner->buffer.pp_subpic_next = &p_owner->buffer.p_subpic; - p_owner->buffer.p_audio = NULL; - p_owner->buffer.pp_audio_next = &p_owner->buffer.p_audio; - p_owner->buffer.p_block = NULL; p_owner->buffer.pp_block_next = &p_owner->buffer.p_block; @@ -884,7 +877,6 @@ static decoder_t * CreateDecoder( vlc_object_t *p_parent, p_owner->buffer.i_count = 0; p_owner->buffer.p_picture = NULL; p_owner->buffer.p_subpic = NULL; - p_owner->buffer.p_audio = NULL; p_owner->buffer.p_block = NULL; p_owner->b_flushing = false; @@ -1176,45 +1168,20 @@ static void DecoderPlayAudio( decoder_t *p_dec, block_t *p_audio, /* */ vlc_mutex_lock( &p_owner->lock ); - if( p_audio && (p_owner->b_buffering || p_owner->buffer.p_audio) ) + if( p_audio && p_owner->b_buffering ) { - p_audio->p_next = NULL; - - *p_owner->buffer.pp_audio_next = p_audio; - p_owner->buffer.pp_audio_next = &p_audio->p_next; - - p_owner->buffer.i_count++; - if( p_owner->buffer.i_count > DECODER_MAX_BUFFERING_COUNT || - p_audio->i_pts - p_owner->buffer.p_audio->i_pts > DECODER_MAX_BUFFERING_AUDIO_DURATION ) - { - p_owner->buffer.b_full = true; - vlc_cond_signal( &p_owner->wait_acknowledge ); - } + p_owner->buffer.b_full = true; + vlc_cond_signal( &p_owner->wait_acknowledge ); } for( ;; ) { - bool b_has_more = false, b_paused; + bool b_paused; bool b_reject = DecoderWaitUnblock( p_dec ); - if( p_owner->b_buffering ) - break; b_paused = p_owner->b_paused; - /* */ - if( p_owner->buffer.p_audio ) - { - p_audio = p_owner->buffer.p_audio; - - p_owner->buffer.p_audio = p_audio->p_next; - p_owner->buffer.i_count--; - - b_has_more = p_owner->buffer.p_audio != NULL; - if( !b_has_more ) - p_owner->buffer.pp_audio_next = &p_owner->buffer.p_audio; - } - if (!p_audio) break; @@ -1251,10 +1218,7 @@ static void DecoderPlayAudio( decoder_t *p_dec, block_t *p_audio, block_Release( p_audio ); } - if( !b_has_more ) - break; - if( !p_owner->buffer.p_audio ) - break; + break; } vlc_mutex_unlock( &p_owner->lock ); } @@ -1712,18 +1676,6 @@ static void DecoderFlushBuffering( decoder_t *p_dec ) if( !p_owner->buffer.p_picture ) p_owner->buffer.pp_picture_next = &p_owner->buffer.p_picture; } - while( p_owner->buffer.p_audio ) - { - block_t *p_audio = p_owner->buffer.p_audio; - - p_owner->buffer.p_audio = p_audio->p_next; - p_owner->buffer.i_count--; - - block_Release( p_audio ); - - if( !p_owner->buffer.p_audio ) - p_owner->buffer.pp_audio_next = &p_owner->buffer.p_audio; - } while( p_owner->buffer.p_subpic ) { subpicture_t *p_subpic = p_owner->buffer.p_subpic; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
