[FFmpeg-cvslog] ffmpeg: report max time of unfinished streams in stats.

Nicolas George git at videolan.org
Tue Aug 28 18:55:46 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Mon Aug 20 21:06:39 2012 +0200| [18217bb0f5fb4ad9d93ea02edab078111cd83910] | committer: Nicolas George

ffmpeg: report max time of unfinished streams in stats.

Eliminating finished streams avoids the progress stopping
with the first stream.
Using the max instead of the min avoids the progress stopping
with gaps in sparse streams (subtitles).
Negligible change for normal circumstances.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18217bb0f5fb4ad9d93ea02edab078111cd83910
---

 ffmpeg.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 0125398..58308c9 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1059,7 +1059,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
     AVCodecContext *enc;
     int frame_number, vid, i;
     double bitrate;
-    int64_t pts = INT64_MAX;
+    int64_t pts = INT64_MIN;
     static int64_t last_time = -1;
     static int qp_histogram[52];
     int hours, mins, secs, us;
@@ -1154,8 +1154,9 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
             vid = 1;
         }
         /* compute min output value */
-        pts = FFMIN(pts, av_rescale_q(ost->st->pts.val,
-                                      ost->st->time_base, AV_TIME_BASE_Q));
+        if (!ost->finished && ost->st->pts.val != AV_NOPTS_VALUE)
+            pts = FFMAX(pts, av_rescale_q(ost->st->pts.val,
+                                          ost->st->time_base, AV_TIME_BASE_Q));
     }
 
     secs = pts / AV_TIME_BASE;



More information about the ffmpeg-cvslog mailing list