On Wed,  9 Jan 2013 12:11:54 -0500, Justin Ruggles <[email protected]> 
wrote:
> ---
>  libavcodec/mpegaudiodec.c |   55 +++++++++++++++++++++-----------------------
>  1 files changed, 26 insertions(+), 29 deletions(-)
> 
> diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
> index fda0280..e5db694 100644
> --- a/libavcodec/mpegaudiodec.c
> +++ b/libavcodec/mpegaudiodec.c
> @@ -83,7 +83,6 @@ typedef struct MPADecodeContext {
>      AVCodecContext* avctx;
>      MPADSPContext mpadsp;
>      DSPContext dsp;
> -    AVFrame frame;
>  } MPADecodeContext;
>  
>  #if CONFIG_FLOAT
> @@ -447,9 +446,6 @@ static av_cold int decode_init(AVCodecContext * avctx)
>      if (avctx->codec_id == AV_CODEC_ID_MP3ADU)
>          s->adu_mode = 1;
>  
> -    avcodec_get_frame_defaults(&s->frame);
> -    avctx->coded_frame = &s->frame;
> -
>      return 0;
>  }
>  
> @@ -1556,7 +1552,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
>  static int mp_decode_frame(MPADecodeContext *s, OUT_INT **samples,
>                             const uint8_t *buf, int buf_size)
>  {
> -    int i, nb_frames, ch, ret;
> +    int i, nb_frames, ch;
>      OUT_INT *samples_ptr;
>  
>      init_get_bits(&s->gb, buf + HEADER_SIZE, (buf_size - HEADER_SIZE) * 8);
> @@ -1609,16 +1605,6 @@ static int mp_decode_frame(MPADecodeContext *s, 
> OUT_INT **samples,
>          s->last_buf_size += i;
>      }
>  
> -    /* get output buffer */
> -    if (!samples) {
> -        s->frame.nb_samples = s->avctx->frame_size;
> -        if ((ret = ff_get_buffer(s->avctx, &s->frame)) < 0) {
> -            av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed\n");
> -            return ret;
> -        }
> -        samples = (OUT_INT **)s->frame.extended_data;
> -    }
> -
>      /* apply the synthesis filter */
>      for (ch = 0; ch < s->nb_channels; ch++) {
>          int sample_stride;
> @@ -1648,6 +1634,7 @@ static int decode_frame(AVCodecContext * avctx, void 
> *data, int *got_frame_ptr,
>      const uint8_t *buf  = avpkt->data;
>      int buf_size        = avpkt->size;
>      MPADecodeContext *s = avctx->priv_data;
> +    AVFrame *frame      = data;
>      uint32_t header;
>      int ret;
>  
> @@ -1678,10 +1665,16 @@ static int decode_frame(AVCodecContext * avctx, void 
> *data, int *got_frame_ptr,
>          buf_size= s->frame_size;
>      }
>  
> -    ret = mp_decode_frame(s, NULL, buf, buf_size);
> +    frame->nb_samples = MPA_FRAME_SIZE;

That's not the same thing current code does. Is there a reason for that?

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

Reply via email to