Despite the documentation saying that it is not freed by libavcodec for a decoder, avcodec_free_context() does so and has been doing so since this function has been added more than seven years ago.
Honouring the current documentation in avcodec_free_context() would add memleaks to all users of it that don't free their extradata manually; given how long this behaviour has been around we can safely assume that these are many (i.e. the fftools are among them, as is libavformat as well as parts of libavcodec itself). Therefore adapt the documentation to match actual behaviour. This fixes ticket #5027. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- libavcodec/avcodec.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index b9b487be41..4596d12647 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -633,6 +633,8 @@ typedef struct AVCodecContext { * Must be allocated with the av_malloc() family of functions. * - encoding: Set/allocated/freed by libavcodec. * - decoding: Set/allocated/freed by user. + * Additionally, avcodec_free_context() frees it regardless of whether + * the context is used for encoding or not. */ uint8_t *extradata; int extradata_size; -- 2.27.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".