From: Pierre-Anthony Lemieux <pal@sandflow.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] format/imfdec: improve error handling when selecting tracks for playback Date: Mon, 19 Sep 2022 07:47:11 -0700 Message-ID: <CAF_7JxCv87n5T6GXguv-UNXVrDOwPQ8cQ4acRaFk7z6VEsRgOg@mail.gmail.com> (raw) In-Reply-To: <20220919144240.GJ2088045@pb2> On Mon, Sep 19, 2022 at 7:42 AM Michael Niedermayer <michael@niedermayer.cc> wrote: > > On Sat, Sep 17, 2022 at 08:57:37AM -0700, Pierre-Anthony Lemieux wrote: > > On Sat, Sep 17, 2022 at 7:43 AM Michael Niedermayer > > <michael@niedermayer.cc> wrote: > > > > > > On Fri, Sep 16, 2022 at 01:19:09PM -0700, Pierre-Anthony Lemieux wrote: > > > > On Fri, Sep 16, 2022 at 1:15 PM Michael Niedermayer > > > > <michael@niedermayer.cc> wrote: > > > > > > > > > > On Fri, Sep 16, 2022 at 10:39:22AM -0700, Pierre-Anthony Lemieux wrote: > > > > > > On Fri, Sep 16, 2022 at 10:27 AM Michael Niedermayer > > > > > > <michael@niedermayer.cc> wrote: > > > > > > > > > > > > > > On Wed, Sep 07, 2022 at 01:02:33PM -0700, pal@sandflow.com wrote: > > > > > > > > From: Pierre-Anthony Lemieux <pal@palemieux.com> > > > > > > > > > > > > > > > > Addresses coverity 1512414 > > > > > > > > > > > > > > > > --- > > > > > > > > libavformat/imfdec.c | 15 ++++++++++++--- > > > > > > > > 1 file changed, 12 insertions(+), 3 deletions(-) > > > > > > > > > > > > > > > > diff --git a/libavformat/imfdec.c b/libavformat/imfdec.c > > > > > > > > index 5bbe7a53f8..58b1455c9f 100644 > > > > > > > > --- a/libavformat/imfdec.c > > > > > > > > +++ b/libavformat/imfdec.c > > > > > > > > @@ -681,8 +681,11 @@ static IMFVirtualTrackPlaybackCtx *get_next_track_with_minimum_timestamp(AVForma > > > > > > > > { > > > > > > > > IMFContext *c = s->priv_data; > > > > > > > > IMFVirtualTrackPlaybackCtx *track; > > > > > > > > > > > > > > > + AVRational minimum_timestamp = av_make_q(INT_MAX, 1); > > > > > > > > - AVRational minimum_timestamp = av_make_q(INT32_MAX, 1); > > > > > > > > > > > > > > iam not sure thats a good idea, it would change behavior on different platforms > > > > > > > > > > > > I was following the earlier observations that "The initialization of > > > > > > minimum_timestamp presumes that int are 32bit which need not be true": > > > > > > > > > > > > http://ffmpeg.org/pipermail/ffmpeg-devel/2022-August/300587.html > > > > > > > > > > > > If I am not mistaken, the numerator and denominator of AVRational are > > > > > > defined as `int`: > > > > > > > > > > > > https://www.ffmpeg.org/doxygen/trunk/structAVRational.html > > > > > > > > > > > > What would be the alternative? > > > > > > > > > > I dont understand why this code uses AVRational for timestamps > > > > > normally timestamps are int64_t with a AVRational timebase and would use > > > > > av_compare_ts() for comparing > > > > > > > > Temporal offsets on IMF tracks are typically expressed as rationals, > > > > and each track can have its own timebase. > > > > > > av_compare_ts() can compare 2 timestamps in 2 different timebases > > > > > > the problem with using AVRational for timestamps in 1sec units is > > > that alot of 64bit * 32/32bit timestamps cannot be represented exactly > > > > Ok. It might be possible to refactor the imfdec timing model in terms > > of (int) time offset + timebase instead of (rational) time offset, or > > at least detect when the current scheme fails. This will require > > careful study. > > > > > Any objections to tackling this refactoring as a separate patchset, > > since this patchet is intended to address the coverity issue? > > you can do it in whichever way works best for you. > Iam just saying that AVRational with more than 32/32bit is problematic Ok. Will revert to initializing minimum_timestamp with INT32_MAX for now so that we can merge this fix. > > consider av_add_q() it expects the product of various fields to fit > int64_t > > if int is 64bit AND AVRational uses teh extra range the implementation > needs a 128bit type or some other modification > > thx > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Into a blind darkness they enter who follow after the Ignorance, > they as if into a greater darkness enter who devote themselves > to the Knowledge alone. -- Isha Upanishad > _______________________________________________ > 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". _______________________________________________ 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".
prev parent reply other threads:[~2022-09-19 14:47 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-07 20:02 pal 2022-09-14 17:21 ` Pierre-Anthony Lemieux 2022-09-16 17:26 ` Michael Niedermayer 2022-09-16 17:39 ` Pierre-Anthony Lemieux 2022-09-16 19:51 ` Pierre-Anthony Lemieux 2022-09-16 20:14 ` Michael Niedermayer 2022-09-16 20:19 ` Pierre-Anthony Lemieux 2022-09-17 14:43 ` Michael Niedermayer 2022-09-17 15:57 ` Pierre-Anthony Lemieux 2022-09-19 14:42 ` Michael Niedermayer 2022-09-19 14:47 ` Pierre-Anthony Lemieux [this message]
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=CAF_7JxCv87n5T6GXguv-UNXVrDOwPQ8cQ4acRaFk7z6VEsRgOg@mail.gmail.com \ --to=pal@sandflow.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