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

Reimar Döffinger Reimar.Doeffinger
Sun Feb 7 16:18:32 CET 2010


On Sun, Feb 07, 2010 at 09:51:29AM +0100, Michael Niedermayer wrote:
> On Sun, Feb 07, 2010 at 08:56:14AM +0100, Reimar D?ffinger wrote:
> > On Sun, Feb 07, 2010 at 01:22:57AM +0100, Michael Niedermayer wrote:
> > > > +    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
> > 
> > Here is an attempt to fix compare_ts first.
> > It assumes that av_rescale_q does the right thing, although it does at least
> > use a different algorithm that convert_ts in nut.txt.
> > "make test" for it is still in progress.
> [...]
> > +    if (av_rescale_q(ts_a, tb_a, tb_b) < ts_b) return -1;
> > +    if (av_rescale_q(ts_b, tb_b, tb_a) < ts_a) return  1;
> > +    return 0;
> 
> av_rescale_q is 
>  return av_rescale_rnd(a, b, c, AV_ROUND_NEAR_INF);
> 
> thats not rounding correctly for us

In that case I suggest someone first fixes the mess - either change
the convert_ts name in the nut spec, or change it to be an actually
appropriate method for timestamp conversion as the name suggests,
or if it already is change av_rescale_q to do that way.
Pointing me to a spec that either is broken or alternatively means half
of FFmpeg is doing it wrong is not much of a help.



More information about the ffmpeg-devel mailing list