summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-05-01 12:01:48 -0300
committerJames Almer <jamrial@gmail.com>2024-05-02 10:39:56 -0300
commit86e418ffd7bbdc0530e1e4d5bd7534b6e03b5b05 (patch)
tree216d66607baa22643667d4508119dcea369ca395
parent71669f2ad54d92a40dc2748cd5bd6ca4c8651231 (diff)
downloadffmpeg-upstream-master.tar.gz
avcodec/avcodec: free decoded_side_data in ff_codec_close()upstream-master
It's set by the library when decoding, so it should be freed when closing the context. Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavcodec/avcodec.c2
-rw-r--r--libavcodec/options.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 888dd76228..214dca4566 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -462,6 +462,8 @@ av_cold void ff_codec_close(AVCodecContext *avctx)
av_freep(&avctx->coded_side_data[i].data);
av_freep(&avctx->coded_side_data);
avctx->nb_coded_side_data = 0;
+ av_frame_side_data_free(&avctx->decoded_side_data,
+ &avctx->nb_decoded_side_data);
av_buffer_unref(&avctx->hw_frames_ctx);
av_buffer_unref(&avctx->hw_device_ctx);
diff --git a/libavcodec/options.c b/libavcodec/options.c
index 0c3b40a186..f60c41bdc3 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -177,8 +177,6 @@ void avcodec_free_context(AVCodecContext **pavctx)
av_freep(&avctx->inter_matrix);
av_freep(&avctx->rc_override);
av_channel_layout_uninit(&avctx->ch_layout);
- av_frame_side_data_free(
- &avctx->decoded_side_data, &avctx->nb_decoded_side_data);
av_freep(pavctx);
}