Make the input realtime framerate emulation code use ist->pts for

computing the time of the next frame to send to output.

See the thread: fix ffmpeg -re behaviour.

Originally committed as revision 15944 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Stefano Sabatini 2008-11-27 21:24:25 +00:00
parent f653095bdd
commit cb103a194b

View File

@ -1306,7 +1306,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
/* frame rate emulation */
if (ist->st->codec->rate_emu) {
int64_t pts = av_rescale((int64_t) ist->frame * ist->st->codec->time_base.num, 1000000, ist->st->codec->time_base.den);
int64_t pts = av_rescale(ist->pts, 1000000, AV_TIME_BASE);
int64_t now = av_gettime() - ist->start;
if (pts > now)
usleep(pts - now);