[FFmpeg-devel] [PATCH] avoid floating point for -t endtime

Reimar Döffinger Reimar.Doeffinger
Sun Feb 7 08:36:32 CET 2010


On Sun, Feb 07, 2010 at 01:22:57AM +0100, Michael Niedermayer wrote:
> On Sat, Feb 06, 2010 at 04:16:20PM +0100, Reimar D?ffinger wrote:
> > On Sat, Feb 06, 2010 at 03:36:14PM +0100, Michael Niedermayer wrote:
> > > On Sat, Feb 06, 2010 at 02:38:27PM +0100, Reimar D?ffinger wrote:
> > > > Hello,
> > > > currently the roqvideo FATE test produces different results because of this.
> > > > While the test needs to be changed anyway, patch below makes them give identical
> > > > results.
> > > > The calculation is not 100% exact since I can't multiply recording_time with
> > > > anything to avoid an overflow (actually I am not sure about the av_mul_q of
> > > > time_base and pts either).
> > > 
> > > see compare_ts() from nut.txt
> > > also if we dont have such a function, it might make sense to add it to
> > > libavutil
> > 
> > We have, attached patch uses it after moving it to libavutil.
> > (Note I will test it as soon as compilation finishes, in about 15 minutes).
> 
> [...]
> > @@ -127,3 +127,26 @@
> >  
> >      return nearest_q_idx;
> >  }
> > +
> > +int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b)
> > +{
> > +    int64_t a, b, res;
> > +
> > +    if (ts_a == INT64_MIN)
> > +        return ts_a < ts_b ? -1 : 0;
> > +    if (ts_a == INT64_MAX)
> > +        return ts_a > ts_b ?  1 : 0;
> > +    if (ts_b == INT64_MIN)
> > +        return ts_a > ts_b ?  1 : 0;
> > +    if (ts_b == INT64_MAX)
> > +        return ts_a < ts_b ? -1 : 0;
> > +
> > +    a = ts_a * tb_a.num * tb_b.den;
> > +    b = ts_b * tb_b.num * tb_a.den;
> 
> read the nut spec again about compare_ts() this overflows for rather small
> numbers

Obviously I didn't read it at all, I just moved the code. I didn't expect
that it would be such complete nonsense.
However if you want to refer people to the nut spec, it should at least be
linked from somewhere, e.g. Google only finds the original checking commit message.



More information about the ffmpeg-devel mailing list