summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Zhao <barryjzhao@tencent.com>2019-09-29 11:58:43 +0800
committerJun Zhao <barryjzhao@tencent.com>2019-09-30 10:08:45 +0800
commit6ca3d34ff8490fb1efa0cc3dc06b6bbb58151c53 (patch)
tree64ae319e50fd85aa05e1364c00e40331daecd7fa
parentf5e867570ef491674694df73776c78105dde7d6e (diff)
lavf/utils: support duration estimate method dump
add new function duration_estimate_name to dump duration estimate method, it's will help to debug some duration issue. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
-rw-r--r--libavformat/utils.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 112d19b86e..60f0229adc 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2934,6 +2934,18 @@ skip_duration_calc:
}
}
+/* 1:1 map to AVDurationEstimationMethod */
+static const char *duration_name[] = {
+ [AVFMT_DURATION_FROM_PTS] = "pts",
+ [AVFMT_DURATION_FROM_STREAM] = "stream",
+ [AVFMT_DURATION_FROM_BITRATE] = "bit rate",
+};
+
+static const char *duration_estimate_name(enum AVDurationEstimationMethod method)
+{
+ return duration_name[method];
+}
+
static void estimate_timings(AVFormatContext *ic, int64_t old_offset)
{
int64_t file_size;
@@ -2979,9 +2991,10 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset)
(double) st->duration * av_q2d(st->time_base));
}
av_log(ic, AV_LOG_TRACE,
- "format: start_time: %0.3f duration: %0.3f bitrate=%"PRId64" kb/s\n",
+ "format: start_time: %0.3f duration: %0.3f (estimate from %s) bitrate=%"PRId64" kb/s\n",
(double) ic->start_time / AV_TIME_BASE,
(double) ic->duration / AV_TIME_BASE,
+ duration_estimate_name(ic->duration_estimation_method),
(int64_t)ic->bit_rate / 1000);
}
}