1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

avcodec/decode: inject missing global side data to output frames

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@gmail.com>
This commit is contained in:
James Almer
2025-02-26 13:34:57 -03:00
parent 964d28e83c
commit 603334e86f

View File

@@ -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;