[FFmpeg-devel] [PATCH 1/2] avcodec/decode: inject missing global side data to output frames
James Almer
jamrial at gmail.com
Wed Feb 26 18:41:49 EET 2025
ff_decode_frame_props() injects global side data passed by the caller (Usually
coming from the container) but ignores the global side data the decoder
gathered from the bitstream itself.
This commit amends this.
Signed-off-by: James Almer <jamrial at gmail.com>
---
libavcodec/decode.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index cac7e620d2..c5a577f4f1 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1570,6 +1570,15 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
if (ret < 0)
return ret;
+ for (int i = 0; i < avctx->nb_decoded_side_data; i++) {
+ const AVFrameSideData *src = avctx->decoded_side_data[i];
+ if (av_frame_get_side_data(frame, src->type))
+ continue;
+ ret = av_frame_side_data_clone(&frame->side_data, &frame->nb_side_data, src, 0);
+ if (ret < 0)
+ return ret;
+ }
+
if (!(ffcodec(avctx->codec)->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) {
const AVPacket *pkt = avctx->internal->last_pkt_props;
--
2.48.1
More information about the ffmpeg-devel
mailing list