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 <jamr...@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 _______________________________________________ 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".