[vlc-devel] [PATCH 1/3] input/decoder.c: clean-up of DecoderProcess
Thomas Guillem
thomas at gllm.fr
Mon May 23 16:19:55 CEST 2016
OK for me.
On Mon, May 23, 2016, at 15:57, Filip Roséen wrote:
> The functionality remains the same, though the code should be easier to
> follow and maintain.
> ---
> src/input/decoder.c | 46 ++++++++++++++++------------------------------
> 1 file changed, 16 insertions(+), 30 deletions(-)
>
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index a881a06..113c105 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -1316,20 +1316,13 @@ static void DecoderProcess( decoder_t *p_dec,
> block_t *p_block )
> decoder_owner_sys_t *p_owner = p_dec->p_owner;
>
> if( p_dec->b_error )
> - {
> - if( p_block )
> - block_Release( p_block );
> - return;
> - }
> -
> - if( p_block && p_block->i_buffer <= 0 )
> - {
> - block_Release( p_block );
> - return;
> - }
> + goto error;
>
> if( p_block )
> {
> + if( p_block->i_buffer <= 0 )
> + goto error;
> +
> vlc_mutex_lock( &p_owner->lock );
> DecoderUpdatePreroll( &p_owner->i_preroll_end, p_block );
> vlc_mutex_unlock( &p_owner->lock );
> @@ -1337,30 +1330,23 @@ static void DecoderProcess( decoder_t *p_dec,
> block_t *p_block )
>
> #ifdef ENABLE_SOUT
> if( p_owner->p_sout != NULL )
> - {
> - DecoderProcessSout( p_dec, p_block );
> - }
> - else
> + return DecoderProcessSout( p_dec, p_block );
> #endif
> +
> + switch( p_dec->fmt_out.i_cat )
> {
> - if( p_dec->fmt_out.i_cat == AUDIO_ES )
> - {
> - DecoderProcessAudio( p_dec, p_block );
> - }
> - else if( p_dec->fmt_out.i_cat == VIDEO_ES )
> - {
> - DecoderProcessVideo( p_dec, p_block );
> - }
> - else if( p_dec->fmt_out.i_cat == SPU_ES )
> - {
> - DecoderProcessSpu( p_dec, p_block );
> - }
> - else
> - {
> + case VIDEO_ES: return DecoderProcessVideo( p_dec, p_block );
> + case AUDIO_ES: return DecoderProcessAudio( p_dec, p_block );
> + case SPU_ES: return DecoderProcessSpu( p_dec, p_block );
> +
> + default:
> msg_Err( p_dec, "unknown ES format" );
> p_dec->b_error = true;
> - }
> }
> +
> +error:
> + if( p_block )
> + block_Release( p_block );
> }
>
> static void DecoderProcessFlush( decoder_t *p_dec )
> --
> 2.8.2
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list