[FFmpeg-devel] [PATCH] In vc1 decoder, fix decoding when end sequence is present

Kostya kostya.shishkov
Wed Mar 2 12:02:11 CET 2011


On Wed, Mar 02, 2011 at 02:47:41AM -0800, Baptiste Coudurier wrote:
> ---
>  libavcodec/vc1dec.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
> index ed92d8c..0f003e5 100644
> --- a/libavcodec/vc1dec.c
> +++ b/libavcodec/vc1dec.c
> @@ -3149,6 +3149,7 @@ static int vc1_decode_frame(AVCodecContext *avctx,
>      const uint8_t *buf_start = buf;
>  
>      /* no supplementary picture */
> + out:
>      if (buf_size == 0) {
>          /* special case for last picture */
>          if (s->low_delay==0 && s->next_picture_ptr) {
> @@ -3161,6 +3162,11 @@ static int vc1_decode_frame(AVCodecContext *avctx,
>          return 0;
>      }
>  
> +    if (buf_size == 4 && AV_RB32(buf) == VC1_CODE_ENDOFSEQ) {
> +        buf_size = 0;
> +        goto out;
> +    }
> +
>      /* We need to set current_picture_ptr before reading the header,
>       * otherwise we cannot store anything in there. */
>      if(s->current_picture_ptr==NULL || s->current_picture_ptr->data[0]){

Why not merge those two conditions instead?



More information about the ffmpeg-devel mailing list