OSDN Git Service

mux: Make sure that the data is actually written
authorSean McGovern <gseanmcg@gmail.com>
Thu, 27 Aug 2015 04:04:16 +0000 (00:04 -0400)
committerLuca Barbato <lu_zero@gentoo.org>
Thu, 3 Sep 2015 11:39:34 +0000 (13:39 +0200)
And forward the error if it is not.

Bug-Id: 881

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/mux.c

index 7959edf..4bba970 100644 (file)
@@ -352,8 +352,12 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
     }
     ret = s->oformat->write_packet(s, pkt);
 
-    if (s->pb && ret >= 0 && s->flags & AVFMT_FLAG_FLUSH_PACKETS)
-        avio_flush(s->pb);
+    if (s->pb && ret >= 0) {
+        if (s->flags & AVFMT_FLAG_FLUSH_PACKETS)
+            avio_flush(s->pb);
+        if (s->pb->error < 0)
+            ret = s->pb->error;
+    }
 
     return ret;
 }