mirror of https://git.ffmpeg.org/ffmpeg.git
optimized ticker_tick() if num is big - please test it (should reduce CPU usage - this code is temporary before new PTS handling scheme)
Originally committed as revision 681 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
5eb765ef34
commit
d714edf190
12
libav/tick.h
12
libav/tick.h
|
@ -22,10 +22,20 @@ static inline int ticker_tick(Ticker *tick, int num)
|
||||||
int n = num * tick->div;
|
int n = num * tick->div;
|
||||||
|
|
||||||
tick->value += num * tick->mod;
|
tick->value += num * tick->mod;
|
||||||
|
#if 1
|
||||||
|
if (tick->value > 0) {
|
||||||
|
n += (tick->value / tick->inrate);
|
||||||
|
tick->value = tick->value % tick->inrate;
|
||||||
|
if (tick->value > 0) {
|
||||||
|
tick->value -= tick->inrate;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
while (tick->value > 0) {
|
while (tick->value > 0) {
|
||||||
tick->value -= tick->inrate;
|
tick->value -= tick->inrate;
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue