diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 4ce6d61cd2..7836ae2f97 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3112,6 +3112,7 @@ AVFrame *avcodec_alloc_frame(void); */ void avcodec_get_frame_defaults(AVFrame *frame); +#if FF_API_AVFRAME_LAVC /** * Free the frame and any dynamically allocated objects in it, * e.g. extended_data. @@ -3121,8 +3122,12 @@ void avcodec_get_frame_defaults(AVFrame *frame); * @warning this function does NOT free the data buffers themselves * (it does not know how, since they might have been allocated with * a custom get_buffer()). + * + * @deprecated use av_frame_free() */ +attribute_deprecated void avcodec_free_frame(AVFrame **frame); +#endif /** * Initialize the AVCodecContext to use the given AVCodec. Prior to using this diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 89d78ddda0..25f16c0a26 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -827,22 +827,12 @@ AVFrame *avcodec_alloc_frame(void) return frame; } -#endif void avcodec_free_frame(AVFrame **frame) { - AVFrame *f; - - if (!frame || !*frame) - return; - - f = *frame; - - if (f->extended_data != f->data) - av_freep(&f->extended_data); - - av_freep(frame); + av_frame_free(frame); } +#endif int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) {