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
