diff options
author | Janne Grunau | 2012-10-09 23:22:49 +0200 |
---|---|---|
committer | Janne Grunau | 2012-10-25 15:00:15 +0200 |
commit | 1b891d17c531e8a63c2974aab4bf997ce70746f3 (patch) | |
tree | f1eadb4350b287626ee60361fe7f06afba2441c1 /avconv.c | |
parent | 285b706b551b94e18f875ed01163926c8b98e68b (diff) |
avconv: fix bitrate report when writing to /dev/null
avio_size() reports the filesize which returns 0 for /dev/null.
avio_tell() reports the current position.
Also handle errors from avio_tell().
Diffstat (limited to 'avconv.c')
-rw-r--r-- | avconv.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -807,8 +807,15 @@ static void print_report(int is_last_report, int64_t timer_start) oc = output_files[0]->ctx; total_size = avio_size(oc->pb); - if (total_size < 0) // FIXME improve avio_size() so it works with non seekable output too + 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'; ti1 = 1e10; |