James Almer: > On 4/24/2021 9:29 AM, Andreas Rheinhardt wrote: >> 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. > > I'd prefer to instead change the decoding line to > > * - decoding: Set/allocated by user, freed by libavcodec.
This would be wrong as avcodec_close() does not free it for decoders. Changing the behaviour would be a breaking change. - Andreas _______________________________________________ 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".