Make the input realtime framerate emulation code use ist->pts for
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Thu, 27 Nov 2008 21:24:25 +0000 (21:24 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Thu, 27 Nov 2008 21:24:25 +0000 (21:24 +0000)
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

ffmpeg.c

index 651fa71b81936550a551683c66f745091267e0bf..75940824e650465a8de019d5241b1ec7efb5fa12 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1306,7 +1306,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
 
         /* frame rate emulation */
         if (ist->st->codec->rate_emu) {
 
         /* 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);
             int64_t now = av_gettime() - ist->start;
             if (pts > now)
                 usleep(pts - now);