On Wed,  9 Jan 2013 12:11:28 -0500, Justin Ruggles <[email protected]> 
wrote:
> ---
>  libavcodec/amrnbdec.c |   14 +++++---------
>  1 files changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c
> index 5c359a8..603a33a 100644
> --- a/libavcodec/amrnbdec.c
> +++ b/libavcodec/amrnbdec.c
> @@ -96,7 +96,6 @@
>  #define AMR_AGC_ALPHA      0.9
>  
>  typedef struct AMRContext {
> -    AVFrame                         avframe; ///< AVFrame for decoded samples
>      AMRNBFrame                        frame; ///< decoded AMR parameters 
> (lsf coefficients, codebook indexes, etc)
>      uint8_t             bad_frame_indicator; ///< bad frame ? 1 : 0
>      enum Mode                cur_frame_mode;
> @@ -177,9 +176,6 @@ static av_cold int amrnb_decode_init(AVCodecContext 
> *avctx)
>      for (i = 0; i < 4; i++)
>          p->prediction_error[i] = MIN_ENERGY;
>  
> -    avcodec_get_frame_defaults(&p->avframe);
> -    avctx->coded_frame = &p->avframe;
> -
>      return 0;
>  }
>  
> @@ -936,6 +932,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void 
> *data,
>  {
>  
>      AMRContext *p = avctx->priv_data;        // pointer to private data
> +    AVFrame *frame     = data;
>      const uint8_t *buf = avpkt->data;
>      int buf_size       = avpkt->size;
>      float *buf_out;                          // pointer to the output data 
> buffer
> @@ -947,12 +944,12 @@ static int amrnb_decode_frame(AVCodecContext *avctx, 
> void *data,
>      const float *synth_fixed_vector;         // pointer to the fixed vector 
> that synthesis should use
>  
>      /* get output buffer */
> -    p->avframe.nb_samples = AMR_BLOCK_SIZE;
> -    if ((ret = ff_get_buffer(avctx, &p->avframe)) < 0) {
> +    frame->nb_samples = AMR_BLOCK_SIZE;
> +    if ((ret = ff_get_buffer(avctx, frame)) < 0) {
>          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
>          return ret;
>      }
> -    buf_out = (float *)p->avframe.data[0];
> +    buf_out = (float *)frame->data[0];
>  
>      p->cur_frame_mode = unpack_bitstream(p, buf, buf_size);
>      if (p->cur_frame_mode == NO_DATA) {
> @@ -1058,8 +1055,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, 
> void *data,
>      ff_weighted_vector_sumf(p->lsf_avg, p->lsf_avg, p->lsf_q[3],
>                              0.84, 0.16, LP_FILTER_ORDER);
>  
> -    *got_frame_ptr   = 1;
> -    *(AVFrame *)data = p->avframe;
> +    *got_frame_ptr = 1;
>  
>      /* return the amount of bytes consumed if everything was OK */
>      return frame_sizes_nb[p->cur_frame_mode] + 1; // +7 for rounding and +8 
> for TOC
> -- 
> 1.7.1
> 

Ok.

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

Reply via email to