On Wed,  9 Jan 2013 12:12:09 -0500, Justin Ruggles <justin.rugg...@gmail.com> 
wrote:
> ---
>  libavcodec/tta.c |   20 ++++++++------------
>  1 files changed, 8 insertions(+), 12 deletions(-)
> 
> diff --git a/libavcodec/tta.c b/libavcodec/tta.c
> index 5ed70e9..e230faf 100644
> --- a/libavcodec/tta.c
> +++ b/libavcodec/tta.c
> @@ -58,7 +58,6 @@ typedef struct TTAChannel {
>  
>  typedef struct TTAContext {
>      AVCodecContext *avctx;
> -    AVFrame frame;
>      GetBitContext gb;
>      const AVCRC *crc_table;
>  
> @@ -303,15 +302,13 @@ static av_cold int tta_decode_init(AVCodecContext * 
> avctx)
>          return -1;
>      }
>  
> -    avcodec_get_frame_defaults(&s->frame);
> -    avctx->coded_frame = &s->frame;
> -
>      return 0;
>  }
>  
>  static int tta_decode_frame(AVCodecContext *avctx, void *data,
>                              int *got_frame_ptr, AVPacket *avpkt)
>  {
> +    AVFrame *frame     = data;
>      const uint8_t *buf = avpkt->data;
>      int buf_size = avpkt->size;
>      TTAContext *s = avctx->priv_data;
> @@ -327,15 +324,15 @@ static int tta_decode_frame(AVCodecContext *avctx, void 
> *data,
>      init_get_bits(&s->gb, buf, buf_size*8);
>  
>      /* get output buffer */
> -    s->frame.nb_samples = framelen;
> -    if ((ret = ff_get_buffer(avctx, &s->frame)) < 0) {
> +    frame->nb_samples = framelen;
> +    if ((ret = ff_get_buffer(avctx, frame)) < 0) {
>          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
>          return ret;
>      }
>  
>      // decode directly to output buffer for 24-bit sample format
>      if (s->bps == 3)
> -        s->decode_buffer = (int32_t *)s->frame.data[0];
> +        s->decode_buffer = (int32_t *)frame->data[0];
>  
>      // init per channel states
>      for (i = 0; i < s->channels; i++) {
> @@ -424,7 +421,7 @@ static int tta_decode_frame(AVCodecContext *avctx, void 
> *data,
>              i++;
>              // check for last frame
>              if (i == s->last_frame_length && get_bits_left(&s->gb) / 8 == 4) 
> {
> -                s->frame.nb_samples = framelen = s->last_frame_length;
> +                frame->nb_samples = framelen = s->last_frame_length;
>                  break;
>              }
>          }
> @@ -439,20 +436,19 @@ static int tta_decode_frame(AVCodecContext *avctx, void 
> *data,
>  
>      // convert to output buffer
>      if (s->bps == 2) {
> -        int16_t *samples = (int16_t *)s->frame.data[0];
> +        int16_t *samples = (int16_t *)frame->data[0];
>          for (p = s->decode_buffer; p < s->decode_buffer + (framelen * 
> s->channels); p++)
>              *samples++ = *p;
>      } else {
>          // shift samples for 24-bit sample format
> -        int32_t *samples = (int32_t *)s->frame.data[0];
> +        int32_t *samples = (int32_t *)frame->data[0];
>          for (i = 0; i < framelen * s->channels; i++)
>              *samples++ <<= 8;
>          // reset decode buffer
>          s->decode_buffer = NULL;
>      }
>  
> -    *got_frame_ptr   = 1;
> -    *(AVFrame *)data = s->frame;
> +    *got_frame_ptr = 1;
>  
>      return buf_size;
>  error:
> -- 
> 1.7.1
> 

Ok

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to