On Wed, 9 Jan 2013 12:12:12 -0500, Justin Ruggles <[email protected]> wrote: > --- > libavcodec/vorbisdec.c | 18 +++++++----------- > 1 files changed, 7 insertions(+), 11 deletions(-) > > diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c > index aac9019..669dde8 100644 > --- a/libavcodec/vorbisdec.c > +++ b/libavcodec/vorbisdec.c > @@ -123,7 +123,6 @@ typedef struct { > > typedef struct vorbis_context_s { > AVCodecContext *avccontext; > - AVFrame frame; > GetBitContext gb; > DSPContext dsp; > AVFloatDSPContext fdsp; > @@ -1030,9 +1029,6 @@ static av_cold int vorbis_decode_init(AVCodecContext > *avccontext) > avccontext->channels = vc->audio_channels; > avccontext->sample_rate = vc->audio_samplerate; > > - avcodec_get_frame_defaults(&vc->frame); > - avccontext->coded_frame = &vc->frame; > - > return 0; > } > > @@ -1643,6 +1639,7 @@ static int vorbis_decode_frame(AVCodecContext > *avccontext, void *data, > const uint8_t *buf = avpkt->data; > int buf_size = avpkt->size; > vorbis_context *vc = avccontext->priv_data; > + AVFrame *frame = data; > GetBitContext *gb = &vc->gb; > float *channel_ptrs[255]; > int i, len, ret; > @@ -1650,19 +1647,19 @@ static int vorbis_decode_frame(AVCodecContext > *avccontext, void *data, > av_dlog(NULL, "packet length %d \n", buf_size); > > /* get output buffer */ > - vc->frame.nb_samples = vc->blocksize[1] / 2; > - if ((ret = ff_get_buffer(avccontext, &vc->frame)) < 0) { > + frame->nb_samples = vc->blocksize[1] / 2; > + if ((ret = ff_get_buffer(avccontext, frame)) < 0) { > av_log(avccontext, AV_LOG_ERROR, "get_buffer() failed\n"); > return ret; > } > > if (vc->audio_channels > 8) { > for (i = 0; i < vc->audio_channels; i++) > - channel_ptrs[i] = (float *)vc->frame.extended_data[i]; > + channel_ptrs[i] = (float *)frame->extended_data[i]; > } else { > for (i = 0; i < vc->audio_channels; i++) { > int ch = ff_vorbis_channel_layout_offsets[vc->audio_channels - > 1][i]; > - channel_ptrs[ch] = (float *)vc->frame.extended_data[i]; > + channel_ptrs[ch] = (float *)frame->extended_data[i]; > } > } > > @@ -1680,9 +1677,8 @@ static int vorbis_decode_frame(AVCodecContext > *avccontext, void *data, > av_dlog(NULL, "parsed %d bytes %d bits, returned %d samples (*ch*bits) > \n", > get_bits_count(gb) / 8, get_bits_count(gb) % 8, len); > > - vc->frame.nb_samples = len; > - *got_frame_ptr = 1; > - *(AVFrame *)data = vc->frame; > + frame->nb_samples = len; > + *got_frame_ptr = 1; > > return buf_size; > } > -- > 1.7.1
Ok. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
