From: Martijn Otto <martijn@resolume.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] Patch: avformat_index_get_entry and avformat_index_get_entry_from_timestamp const correctness Date: Thu, 15 May 2025 15:11:12 +0200 Message-ID: <a5d12d8dfea1afd9cceda48f9bb51a873a09e5f2.camel@resolume.com> (raw) In-Reply-To: <GV1P250MB073768F2D367642441EF14E58F90A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> [-- Attachment #1: Type: text/plain, Size: 1139 bytes --] On Thu, 2025-05-15 at 14:44 +0200, Andreas Rheinhardt wrote: > Martijn Otto: > > static av_always_inline const FFStream *cffstream(const AVStream > > *st) > > { > > - return (FFStream*)st; > > + return (const FFStream*)st; > > } > > Your patch should be applied on top of git master, not some old > version. > The above change is identical to > 185d0acdc7a67b7d3d78d4c917334c4c3bf9accd. > > Anyway, I remember that someone (IIRC Anton Khirnov) objected to the > const when this was introduced. > > - Andreas > > _______________________________________________ > 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". I've updated the patch to apply to latest master, I've made it quite some time in the past, and something went wrong with my submission then. I'm curious to hear what the arguments against these functions taking a const-qualified stream are, given that we return a const-value and don't modify it at all. [-- Attachment #2: 0001-avformat_index_get_entry-and-_from_timestamp-const-c.patch --] [-- Type: text/x-patch, Size: 2797 bytes --] From 0c8f5873366e7721292007bca644ff5cc312df2b Mon Sep 17 00:00:00 2001 From: Martijn Otto <martijn@resolume.com> Date: Thu, 15 May 2025 15:06:52 +0200 Subject: [PATCH] These functions don't need a mutable pointer to the stream, as they don't modify anything, and only return const-qualified pointers themselves. --- libavformat/avformat.h | 4 ++-- libavformat/seek.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 498c3020a5..5a0aa3f87d 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -2751,7 +2751,7 @@ int avformat_index_get_entries_count(const AVStream *st); * until any function that takes the stream or the parent AVFormatContext * as input argument is called. */ -const AVIndexEntry *avformat_index_get_entry(AVStream *st, int idx); +const AVIndexEntry *avformat_index_get_entry(const AVStream *st, int idx); /** * Get the AVIndexEntry corresponding to the given timestamp. @@ -2768,7 +2768,7 @@ const AVIndexEntry *avformat_index_get_entry(AVStream *st, int idx); * until any function that takes the stream or the parent AVFormatContext * as input argument is called. */ -const AVIndexEntry *avformat_index_get_entry_from_timestamp(AVStream *st, +const AVIndexEntry *avformat_index_get_entry_from_timestamp(const AVStream *st, int64_t wanted_timestamp, int flags); /** diff --git a/libavformat/seek.c b/libavformat/seek.c index c0d94371e6..2308660638 100644 --- a/libavformat/seek.c +++ b/libavformat/seek.c @@ -254,20 +254,20 @@ int avformat_index_get_entries_count(const AVStream *st) return cffstream(st)->nb_index_entries; } -const AVIndexEntry *avformat_index_get_entry(AVStream *st, int idx) +const AVIndexEntry *avformat_index_get_entry(const AVStream *st, int idx) { - const FFStream *const sti = ffstream(st); + const FFStream *const sti = cffstream(st); if (idx < 0 || idx >= sti->nb_index_entries) return NULL; return &sti->index_entries[idx]; } -const AVIndexEntry *avformat_index_get_entry_from_timestamp(AVStream *st, +const AVIndexEntry *avformat_index_get_entry_from_timestamp(const AVStream *st, int64_t wanted_timestamp, int flags) { - const FFStream *const sti = ffstream(st); + const FFStream *const sti = cffstream(st); int idx = ff_index_search_timestamp(sti->index_entries, sti->nb_index_entries, wanted_timestamp, flags); -- 2.47.2 [-- Attachment #3: Type: text/plain, Size: 251 bytes --] _______________________________________________ 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:[~2025-05-15 13:11 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-05-15 11:51 Martijn Otto 2025-05-15 12:44 ` Andreas Rheinhardt 2025-05-15 13:11 ` Martijn Otto [this message] -- strict thread matches above, loose matches on Subject: below -- 2023-02-16 9:21 Martijn Otto 2022-11-07 15:11 Martijn Otto
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=a5d12d8dfea1afd9cceda48f9bb51a873a09e5f2.camel@resolume.com \ --to=martijn@resolume.com \ --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