On Wed,  9 Jan 2013 12:12:07 -0500, Justin Ruggles <[email protected]> 
wrote:
> ---
>  libavcodec/takdec.c |   19 ++++++++-----------
>  1 files changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c
> index d47db48..7c488f8 100644
> --- a/libavcodec/takdec.c
> +++ b/libavcodec/takdec.c
> @@ -44,7 +44,6 @@ typedef struct MCDParam {
>  
>  typedef struct TAKDecContext {
>      AVCodecContext *avctx;                          // parent AVCodecContext
> -    AVFrame         frame;                          // AVFrame for decoded 
> output
>      DSPContext      dsp;
>      TAKStreamInfo   ti;
>      GetBitContext   gb;                             // bitstream reader 
> initialized to start at the current frame
> @@ -175,8 +174,6 @@ static av_cold int tak_decode_init(AVCodecContext *avctx)
>      ff_dsputil_init(&s->dsp, avctx);
>  
>      s->avctx = avctx;
> -    avcodec_get_frame_defaults(&s->frame);
> -    avctx->coded_frame = &s->frame;
>  
>      set_sample_rate_params(avctx);
>  
> @@ -674,6 +671,7 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>                              int *got_frame_ptr, AVPacket *pkt)
>  {
>      TAKDecContext *s  = avctx->priv_data;
> +    AVFrame *frame    = data;
>      GetBitContext *gb = &s->gb;
>      int chan, i, ret, hsize;
>  
> @@ -740,8 +738,8 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>      s->nb_samples = s->ti.last_frame_samples ? s->ti.last_frame_samples
>                                               : s->ti.frame_samples;
>  
> -    s->frame.nb_samples = s->nb_samples;
> -    if ((ret = ff_get_buffer(avctx, &s->frame)) < 0)
> +    frame->nb_samples = s->nb_samples;
> +    if ((ret = ff_get_buffer(avctx, frame)) < 0)
>          return ret;
>  
>      if (avctx->bits_per_coded_sample <= 16) {
> @@ -758,7 +756,7 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>              return ret;
>      } else {
>          for (chan = 0; chan < avctx->channels; chan++)
> -            s->decoded[chan] = (int32_t *)s->frame.extended_data[chan];
> +            s->decoded[chan] = (int32_t *)frame->extended_data[chan];
>      }
>  
>      if (s->nb_samples < 16) {
> @@ -876,7 +874,7 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>      switch (avctx->sample_fmt) {
>      case AV_SAMPLE_FMT_U8P:
>          for (chan = 0; chan < avctx->channels; chan++) {
> -            uint8_t *samples = (uint8_t *)s->frame.extended_data[chan];
> +            uint8_t *samples = (uint8_t *)frame->extended_data[chan];
>              int32_t *decoded = s->decoded[chan];
>              for (i = 0; i < s->nb_samples; i++)
>                  samples[i] = decoded[i] + 0x80;
> @@ -884,7 +882,7 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>          break;
>      case AV_SAMPLE_FMT_S16P:
>          for (chan = 0; chan < avctx->channels; chan++) {
> -            int16_t *samples = (int16_t *)s->frame.extended_data[chan];
> +            int16_t *samples = (int16_t *)frame->extended_data[chan];
>              int32_t *decoded = s->decoded[chan];
>              for (i = 0; i < s->nb_samples; i++)
>                  samples[i] = decoded[i];
> @@ -892,15 +890,14 @@ static int tak_decode_frame(AVCodecContext *avctx, void 
> *data,
>          break;
>      case AV_SAMPLE_FMT_S32P:
>          for (chan = 0; chan < avctx->channels; chan++) {
> -            int32_t *samples = (int32_t *)s->frame.extended_data[chan];
> +            int32_t *samples = (int32_t *)frame->extended_data[chan];
>              for (i = 0; i < s->nb_samples; i++)
>                  samples[i] <<= 8;
>          }
>          break;
>      }
>  
> -    *got_frame_ptr   = 1;
> -    *(AVFrame *)data = s->frame;
> +    *got_frame_ptr = 1;
>  
>      return pkt->size;
>  }
> -- 
> 1.7.1

Ok.

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

Reply via email to