mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
av_add_stable: Add fast special case where step can be represented exactly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
4956d0e5a6
commit
e9add0d85b
@ -188,9 +188,17 @@ simple_round:
|
||||
|
||||
int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc)
|
||||
{
|
||||
int64_t m, d;
|
||||
|
||||
if (inc != 1)
|
||||
inc_tb = av_mul_q(inc_tb, (AVRational) {inc, 1});
|
||||
|
||||
m = inc_tb.num * (int64_t)ts_tb.den;
|
||||
d = inc_tb.den * (int64_t)ts_tb.num;
|
||||
|
||||
if (m % d == 0)
|
||||
return ts + m / d;
|
||||
|
||||
if (av_cmp_q(inc_tb, ts_tb) < 0) {
|
||||
//increase step is too small for even 1 step to be representable
|
||||
return ts;
|
||||
|
Loading…
Reference in New Issue
Block a user