On Wed, Dec 17, 2014 at 4:02 PM, Vittorio Giovara
<[email protected]> wrote:
> Bug-Id: CID 1257781
> ---
>  libavcodec/mpegvideo.h     |  2 +-
>  libavcodec/mpegvideo_enc.c |  3 ++-
>  libavcodec/msmpeg4enc.c    | 19 ++++++++++++++-----
>  3 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
> index ac077b3..e389038 100644
> --- a/libavcodec/mpegvideo.h
> +++ b/libavcodec/mpegvideo.h
> @@ -854,7 +854,7 @@ void ff_msmpeg4_encode_mb(MpegEncContext * s,
>  int ff_msmpeg4_decode_picture_header(MpegEncContext * s);
>  int ff_msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);
>  int ff_msmpeg4_decode_init(AVCodecContext *avctx);
> -void ff_msmpeg4_encode_init(MpegEncContext *s);
> +int ff_msmpeg4_encode_init(MpegEncContext *s);
>  int ff_wmv2_decode_picture_header(MpegEncContext * s);
>  int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);
>  void ff_wmv2_add_mb(MpegEncContext *s, int16_t block[6][64], uint8_t 
> *dest_y, uint8_t *dest_cb, uint8_t *dest_cr);
> diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
> index 8775eac..0300f7c 100644
> --- a/libavcodec/mpegvideo_enc.c
> +++ b/libavcodec/mpegvideo_enc.c
> @@ -759,7 +759,8 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
>      if (CONFIG_H263_ENCODER && s->out_format == FMT_H263)
>          ff_h263_encode_init(s);
>      if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version)
> -        ff_msmpeg4_encode_init(s);
> +        if ((ret = ff_msmpeg4_encode_init(s)) < 0)
> +            return ret;
>      if ((CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER)
>          && s->out_format == FMT_MPEG1)
>          ff_mpeg1_encode_init(s);
> diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c
> index 45ef208..999c541 100644
> --- a/libavcodec/msmpeg4enc.c
> +++ b/libavcodec/msmpeg4enc.c
> @@ -46,11 +46,14 @@
>  static uint8_t rl_length[NB_RL_TABLES][MAX_LEVEL+1][MAX_RUN+1][2];
>
>  /* build the table which associate a (x,y) motion vector to a vlc */
> -static av_cold void init_mv_table(MVTable *tab)
> +static av_cold int init_mv_table(MVTable *tab)
>  {
>      int i, x, y;
>
>      tab->table_mv_index = av_malloc(sizeof(uint16_t) * 4096);
> +    if (!tab->table_mv_index)
> +        return AVERROR(ENOMEM);
> +
>      /* mark all entries as not used */
>      for(i=0;i<4096;i++)
>          tab->table_mv_index[i] = tab->n;
> @@ -60,6 +63,8 @@ static av_cold void init_mv_table(MVTable *tab)
>          y = tab->table_mvy[i];
>          tab->table_mv_index[(x << 6) | y] = i;
>      }
> +
> +    return 0;
>  }
>
>  void ff_msmpeg4_code012(PutBitContext *pb, int n)
> @@ -113,10 +118,10 @@ static int get_size_of_code(MpegEncContext * s, RLTable 
> *rl, int last, int run,
>      return size;
>  }
>
> -av_cold void ff_msmpeg4_encode_init(MpegEncContext *s)
> +av_cold int ff_msmpeg4_encode_init(MpegEncContext *s)
>  {
>      static int init_done=0;
> -    int i;
> +    int i, ret;
>
>      ff_msmpeg4_common_init(s);
>      if(s->msmpeg4_version>=4){
> @@ -127,8 +132,10 @@ av_cold void ff_msmpeg4_encode_init(MpegEncContext *s)
>      if (!init_done) {
>          /* init various encoding tables */
>          init_done = 1;
> -        init_mv_table(&ff_mv_tables[0]);
> -        init_mv_table(&ff_mv_tables[1]);
> +        if ((ret = init_mv_table(&ff_mv_tables[0])) < 0)
> +            return ret;
> +        if ((ret = init_mv_table(&ff_mv_tables[1])) < 0)
> +            return ret;
>          for(i=0;i<NB_RL_TABLES;i++)
>              ff_init_rl(&ff_rl_table[i], ff_static_rl_table_store[i]);
>
> @@ -145,6 +152,8 @@ av_cold void ff_msmpeg4_encode_init(MpegEncContext *s)
>              }
>          }
>      }
> +
> +    return 0;
>  }
>
>  static void find_best_tables(MpegEncContext * s)
> --
> 1.9.3 (Apple Git-50)
>
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel

Seems to be OK.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to