summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2016-12-15 18:59:41 +0100
committerLuca Barbato <lu_zero@gentoo.org>2017-01-13 08:42:11 +0100
commit44129e38047b6a27291e487c2084894958c6f399 (patch)
treeac7492ff9eab5a0310655c82510c01dd55db8439
parentf8f7ad758d0e1f36915467567f4d75541d98c12f (diff)
avconv: Do not pass NULL to avio_tell
The null demuxer does not have a backing AVIOContext.
-rw-r--r--avconv.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/avconv.c b/avconv.c
index 5c31332812..fe606250fe 100644
--- a/avconv.c
+++ b/avconv.c
@@ -909,7 +909,7 @@ static void print_report(int is_last_report, int64_t timer_start)
char buf[1024];
OutputStream *ost;
AVFormatContext *oc;
- int64_t total_size;
+ int64_t total_size = 0;
AVCodecContext *enc;
int frame_number, vid, i;
double bitrate, ti1, pts;
@@ -934,16 +934,17 @@ 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
- 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;
+ if (oc->pb) {
+ 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';