[FFmpeg-devel] [PATCH 2/3] lavf/utils: fix start_time dump when the value is AV_NOPTS_VALUE
Jun Zhao
mypopydev at gmail.com
Sun May 17 10:24:45 EEST 2020
From: Jun Zhao <barryjzhao at tencent.com>
The command:
ffprobe -show_format -i ../fate-suite/aac/foo.aac -loglevel 99 will
dump the trace message as follow when start_time is AV_NOPTS_VALUE
[aac @ 0x55bf8e1f3dc0] stream 0: start_time: -326791809695.818 duration: 2.174
[aac @ 0x55bf8e1f3dc0] format: start_time: -9223372036854.775 duration: 2.174 bitrate=120 kb/s
after this fix, will dump the start_time with "N/A".
Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
---
libavformat/utils.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e6158d8..d7fdd72 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2983,11 +2983,24 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset)
AVStream av_unused *st;
for (i = 0; i < ic->nb_streams; i++) {
st = ic->streams[i];
- if (st->time_base.den)
+ if (st->time_base.den) {
+ if (st->start_time == AV_NOPTS_VALUE)
+ av_log(ic, AV_LOG_TRACE, "stream %d: start_time: N/A duration: %0.3f\n", i,
+ (double) st->duration * av_q2d(st->time_base));
+ else
av_log(ic, AV_LOG_TRACE, "stream %d: start_time: %0.3f duration: %0.3f\n", i,
(double) st->start_time * av_q2d(st->time_base),
(double) st->duration * av_q2d(st->time_base));
+ }
}
+
+ if (ic->start_time == AV_NOPTS_VALUE)
+ av_log(ic, AV_LOG_TRACE,
+ "format: start_time: N/A duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n",
+ (double) ic->duration / AV_TIME_BASE,
+ duration_estimate_name(ic->duration_estimation_method),
+ (int64_t)ic->bit_rate / 1000);
+ else
av_log(ic, AV_LOG_TRACE,
"format: start_time: %0.3f duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n",
(double) ic->start_time / AV_TIME_BASE,
--
2.7.4
More information about the ffmpeg-devel
mailing list