From: Anton Khirnov <anton@khirnov.net> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH 09/11] avcodec/decode: check for global side data in AVCodecContext side data Date: Tue, 03 Oct 2023 14:34:57 +0200 Message-ID: <169633649730.6638.7006599604326857996@lain.khirnov.net> (raw) In-Reply-To: <20230927131242.1950-10-jamrial@gmail.com> 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 <jamrial@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-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-10-03 12:35 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-09-27 13:12 [FFmpeg-devel] [PATCH 00/11 v5] AVCodecContext and AVCodecParameters " James Almer 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 01/11] avcodec/packet: add generic side data helpers James Almer 2023-10-03 12:54 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 02/11] avcodec/codec_par: add side data to AVCodecParameters James Almer 2023-10-03 11:23 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 03/11] avformat/avformat: use the side data from AVStream.codecpar James Almer 2023-10-03 11:38 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 04/11] avcodec/packet: add some documentation for AVPacketSideData James Almer 2023-10-03 11:02 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 05/11] fftools/ffmpeg: stop using AVStream.side_data James Almer 2023-10-03 11:50 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 06/11] fftools/ffplay: " James Almer 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 07/11] fftools/ffprobe: " James Almer 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 08/11] avcodec/hevcdec: check for DOVI configuration record in AVCodecContext side data James Almer 2023-10-03 10:18 ` Anton Khirnov 2023-10-03 19:11 ` James Almer 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 09/11] avcodec/decode: check for global side data " James Almer 2023-10-03 12:34 ` Anton Khirnov [this message] 2023-10-03 18:46 ` James Almer 2023-10-04 3:22 ` James Almer 2023-10-04 14:36 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 10/11] fftools/ffmpeg: stop injecting stream side data in packets James Almer 2023-10-03 11:04 ` Anton Khirnov 2023-09-27 13:12 ` [FFmpeg-devel] [PATCH 11/11] fftools/ffplay: " James Almer 2023-10-03 10:11 ` Anton Khirnov 2023-10-03 11:28 ` Anton Khirnov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=169633649730.6638.7006599604326857996@lain.khirnov.net \ --to=anton@khirnov.net \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git