On Wed, 9 Jan 2013 12:11:25 -0500, Justin Ruggles <[email protected]> wrote: > --- > libavcodec/adx.h | 1 - > libavcodec/adxenc.c | 15 +++++++++++++-- > 2 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/adx.h b/libavcodec/adx.h > index 47d9f24..ff4c2d6 100644 > --- a/libavcodec/adx.h > +++ b/libavcodec/adx.h > @@ -40,7 +40,6 @@ typedef struct ADXChannelState { > } ADXChannelState; > > typedef struct ADXContext { > - AVFrame frame; > int channels; > ADXChannelState prev[2]; > int header_parsed; > diff --git a/libavcodec/adxenc.c b/libavcodec/adxenc.c > index 8a50539..7a9c06a 100644 > --- a/libavcodec/adxenc.c > +++ b/libavcodec/adxenc.c > @@ -107,6 +107,14 @@ static int adx_encode_header(AVCodecContext *avctx, > uint8_t *buf, int bufsize) > return HEADER_SIZE; > } > > +#if FF_API_OLD_ENCODE_AUDIO > +static av_cold int adx_encode_close(AVCodecContext *avctx) > +{ > + av_freep(&avctx->coded_frame); > + return 0; > +} > +#endif > + > static av_cold int adx_encode_init(AVCodecContext *avctx) > { > ADXContext *c = avctx->priv_data; > @@ -118,8 +126,8 @@ static av_cold int adx_encode_init(AVCodecContext *avctx) > avctx->frame_size = BLOCK_SAMPLES; > > #if FF_API_OLD_ENCODE_AUDIO > - avcodec_get_frame_defaults(&c->frame); > - avctx->coded_frame = &c->frame; > + if (!(avctx->coded_frame = avcodec_alloc_frame())) > + return AVERROR(ENOMEM); > #endif > > /* the cutoff can be adjusted, but this seems to work pretty well */ > @@ -169,6 +177,9 @@ AVCodec ff_adpcm_adx_encoder = { > .id = AV_CODEC_ID_ADPCM_ADX, > .priv_data_size = sizeof(ADXContext), > .init = adx_encode_init, > +#if FF_API_OLD_ENCODE_AUDIO > + .close = adx_encode_close, > +#endif > .encode2 = adx_encode_frame, > .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, > AV_SAMPLE_FMT_NONE }, > -- > 1.7.1 >
Ok. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
