[vlc-devel] [PATCH] flac: reset decoder on end of stream (fixes #9298)

Tristan Matthews le.businessman at gmail.com
Fri Sep 12 16:50:25 CEST 2014


On Fri, Sep 12, 2014 at 3:44 AM, Tristan Matthews
<le.businessman at gmail.com> wrote:
> ---
>  modules/codec/flac.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/modules/codec/flac.c b/modules/codec/flac.c
> index f2e3cda..32ae7fb 100644
> --- a/modules/codec/flac.c
> +++ b/modules/codec/flac.c
> @@ -526,10 +526,16 @@ static block_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block )
>
>      /* If the decoder is in the "aborted" state,
>       * FLAC__stream_decoder_process_single() won't return an error. */
> -    if( FLAC__stream_decoder_get_state(p_dec->p_sys->p_flac)
> -        == FLAC__STREAM_DECODER_ABORTED )
> +    switch ( FLAC__stream_decoder_get_state(p_dec->p_sys->p_flac) )
>      {
> -        FLAC__stream_decoder_flush( p_dec->p_sys->p_flac );
> +        case FLAC__STREAM_DECODER_ABORTED:
> +            FLAC__stream_decoder_flush( p_dec->p_sys->p_flac );
> +            break;
> +        case FLAC__STREAM_DECODER_END_OF_STREAM:
> +            FLAC__stream_decoder_reset( p_dec->p_sys->p_flac );
> +            break;
> +        default:
> +            break;
>      }
>
>      block_Release( p_sys->p_block );
> --
> 1.9.1
>

Hmm, just noticed there's still a slight gap in playback so this
probably isn't the proper solution.



More information about the vlc-devel mailing list