From 750382d5c88339d2bde17851455403bdc75e9a60 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 23 Dec 2012 00:19:11 +0100 Subject: [PATCH] ffmpeg: remove annoying logs and improve reporting in case of unavailable bitrate --- ffmpeg.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 73b5dff59c..977218f62a 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -1108,13 +1108,6 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti total_size = avio_size(oc->pb); if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too total_size = avio_tell(oc->pb); - if (total_size < 0) { - char errbuf[128]; - av_strerror(total_size, errbuf, sizeof(errbuf)); - av_log(NULL, AV_LOG_VERBOSE, "Bitrate not available, " - "avio_tell() failed: %s\n", errbuf); - total_size = 0; - } buf[0] = '\0'; vid = 0; @@ -1195,16 +1188,21 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti hours = mins / 60; mins %= 60; - bitrate = pts ? total_size * 8 / (pts / 1000.0) : 0; + bitrate = pts && total_size >= 0 ? total_size * 8 / (pts / 1000.0) : -1; - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "size=%8.0fkB time=", total_size / 1024.0); + if (total_size < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), + "size=N/A time="); + else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), + "size=%8.0fkB time=", total_size / 1024.0); snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%02d:%02d:%02d.%02d ", hours, mins, secs, (100 * us) / AV_TIME_BASE); - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), - "bitrate=%6.1fkbits/s", bitrate); - av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size); + if (bitrate < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), + "bitrate=N/A"); + else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), + "bitrate=%6.1fkbits/s", bitrate); + if (total_size < 0) av_bprintf(&buf_script, "total_size=N/A\n"); + else av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size); av_bprintf(&buf_script, "out_time_ms=%"PRId64"\n", pts); av_bprintf(&buf_script, "out_time=%02d:%02d:%02d.%06d\n", hours, mins, secs, us); -- GitLab