On Sat, 26 Oct 2013 19:32:08 +0200, Luca Barbato <[email protected]> wrote:
> ---
>  libavcodec/h263dec.c | 49 ++++++++++++++++++++++++++++---------------------
>  1 file changed, 28 insertions(+), 21 deletions(-)
> 
> diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
> index 1ac972c..c65910a 100644
> --- a/libavcodec/h263dec.c
> +++ b/libavcodec/h263dec.c
> @@ -41,6 +41,7 @@
>  av_cold int ff_h263_decode_init(AVCodecContext *avctx)
>  {
>      MpegEncContext *s = avctx->priv_data;
> +    int ret;
>  
>      s->avctx           = avctx;
>      s->out_format      = FMT_H263;
> @@ -102,7 +103,7 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx)
>          s->h263_flv = 1;
>          break;
>      default:
> -        return -1;
> +        return AVERROR(ENOSYS);

An error message would be appropriate here.

>      }
>      s->codec_id    = avctx->codec->id;
>      avctx->hwaccel = ff_find_hwaccel(avctx->codec->id, avctx->pix_fmt);
> @@ -110,8 +111,8 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx)
>      /* for h263, we allocate the images after having read the header */
>      if (avctx->codec->id != AV_CODEC_ID_H263 &&
>          avctx->codec->id != AV_CODEC_ID_MPEG4)
> -        if (ff_MPV_common_init(s) < 0)
> -            return -1;
> +        if ((ret = ff_MPV_common_init(s)) < 0)
> +            return ret;
>  
>      ff_h263_decode_init_vlc();
>  
> @@ -160,6 +161,7 @@ static int decode_slice(MpegEncContext *s)
>      const int part_mask = s->partitioned_frame
>                            ? (ER_AC_END | ER_AC_ERROR) : 0x7F;
>      const int mb_size = 16;
> +    int ret;
>  
>      s->last_resync_gb   = s->gb;
>      s->first_slice_line = 1;
> @@ -180,8 +182,8 @@ static int decode_slice(MpegEncContext *s)
>          const int qscale = s->qscale;
>  
>          if (CONFIG_MPEG4_DECODER && s->codec_id == AV_CODEC_ID_MPEG4)
> -            if (ff_mpeg4_decode_partitions(s) < 0)
> -                return -1;
> +            if ((ret = ff_mpeg4_decode_partitions(s)) < 0)
> +                return ret;
>  
>          /* restore variables which were modified */
>          s->first_slice_line = 1;
> @@ -253,13 +255,13 @@ static int decode_slice(MpegEncContext *s)
>                      ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y,
>                                      s->mb_x + 1, s->mb_y,
>                                      ER_MB_END & part_mask);
> -                    return -1;
> +                    return AVERROR_INVALIDDATA;
>                  }
>                  av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", xy);
>                  ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y,
>                                  s->mb_x, s->mb_y, ER_MB_ERROR & part_mask);
>  
> -                return -1;
> +                return AVERROR_INVALIDDATA;
>              }
>  
>              ff_MPV_decode_mb(s, s->block);
> @@ -353,7 +355,7 @@ static int decode_slice(MpegEncContext *s)
>      ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y,
>                      ER_MB_END & part_mask);
>  
> -    return -1;
> +    return AVERROR_INVALIDDATA;
>  }
>  
>  int ff_h263_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
> @@ -392,7 +394,7 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>          } else {
>              av_log(s->avctx, AV_LOG_ERROR,
>                     "this codec does not support truncated bitstreams\n");
> -            return -1;
> +            return AVERROR(ENOSYS);
>          }
>  
>          if (ff_combine_frame(&s->parse_context, next, (const uint8_t **)&buf,
> @@ -411,8 +413,9 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>          return ret;
>  
>      if (!s->context_initialized)
> -        if (ff_MPV_common_init(s) < 0) // we need the idct permutaton for 
> reading a custom matrix
> -            return -1;
> +        // we need the idct permutaton for reading a custom matrix
> +        if ((ret = ff_MPV_common_init(s)) < 0)
> +            return ret;
>  
>      /* We need to set current_picture_ptr before reading the header,
>       * otherwise we cannot store anyting in there */
> @@ -452,7 +455,7 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>      /* skip if the header was thrashed */
>      if (ret < 0) {
>          av_log(s->avctx, AV_LOG_ERROR, "header damaged\n");
> -        return -1;
> +        return ret;
>      }
>  
>      avctx->has_b_frames = !s->low_delay;
> @@ -635,16 +638,18 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>          s->me.qpel_avg = s->dsp.avg_qpel_pixels_tab;
>      }
>  
> -    if (ff_MPV_frame_start(s, avctx) < 0)
> -        return -1;
> +    if ((ret = ff_MPV_frame_start(s, avctx)) < 0)
> +        return ret;
>  
>      if (!s->divx_packed && !avctx->hwaccel)
>          ff_thread_finish_setup(avctx);
>  
> -    if (avctx->hwaccel)
> -        if (avctx->hwaccel->start_frame(avctx, s->gb.buffer,
> -                                        s->gb.buffer_end - s->gb.buffer) < 0)
> -            return -1;
> +    if (avctx->hwaccel) {
> +        ret = avctx->hwaccel->start_frame(avctx, s->gb.buffer,
> +                                          s->gb.buffer_end - s->gb.buffer);
> +        if (ret < 0 )
> +            return ret;
> +    }
>  
>      ff_mpeg_er_frame_start(s);
>  
> @@ -729,9 +734,11 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>  intrax8_decoded:
>      ff_er_frame_end(&s->er);
>  
> -    if (avctx->hwaccel)
> -        if (avctx->hwaccel->end_frame(avctx) < 0)
> -            return -1;
> +    if (avctx->hwaccel) {
> +        ret = avctx->hwaccel->end_frame(avctx);
> +        if (ret < 0)
> +            return ret;
> +    }
>  
>      ff_MPV_frame_end(s);
>  
> -- 
> 1.8.3.2

The rest looks okish

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to