Quoting James Almer (2023-09-27 15:12:40) > avcodec/decode: check for global side data in AVCodecContext side data
I don't think this makes it clear what this commit actually does. Make it something like 'propagate global side data to frames'. > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavcodec/decode.c | 48 +++++++++++++++++++++++++++++++++++++-------- > 1 file changed, 40 insertions(+), 8 deletions(-) > > diff --git a/libavcodec/decode.c b/libavcodec/decode.c > index a7196b5740..3b4bb70689 100644 > --- a/libavcodec/decode.c > +++ b/libavcodec/decode.c > @@ -1422,6 +1422,20 @@ static int add_metadata_from_side_data(const AVPacket > *avpkt, AVFrame *frame) > return av_packet_unpack_dictionary(side_metadata, size, frame_md); > } > > +static const struct { > + enum AVPacketSideDataType packet; > + enum AVFrameSideDataType frame; > +} sd_global_map[] = { > + { AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN }, > + { AV_PKT_DATA_SPHERICAL, AV_FRAME_DATA_SPHERICAL }, > + { AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D }, > + { AV_PKT_DATA_AUDIO_SERVICE_TYPE, > AV_FRAME_DATA_AUDIO_SERVICE_TYPE }, > + { AV_PKT_DATA_MASTERING_DISPLAY_METADATA, > AV_FRAME_DATA_MASTERING_DISPLAY_METADATA }, > + { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, > AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, > + { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, > + { AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS > }, > +}; > + > int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, > AVFrame *frame, const AVPacket *pkt) > { > @@ -1429,18 +1443,10 @@ int ff_decode_frame_props_from_pkt(const > AVCodecContext *avctx, > enum AVPacketSideDataType packet; > enum AVFrameSideDataType frame; > } sd[] = { > - { AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN }, > { AV_PKT_DATA_DISPLAYMATRIX, > AV_FRAME_DATA_DISPLAYMATRIX }, Why are you leaving displaymatrix out? Also, what happens if the same side data is present at both global and packet level? Won't you get two instances in the frame? I think the correct behaviour would be that packet overrides global. -- Anton Khirnov _______________________________________________ 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".