diff --git a/libavformat/mux.c b/libavformat/mux.c index f2c137fa9e..37b5976464 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -660,8 +660,13 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) ret = s->oformat->write_packet(s, pkt); } - if (s->flush_packets && s->pb && ret >= 0 && s->flags & AVFMT_FLAG_FLUSH_PACKETS) - avio_flush(s->pb); + if (s->pb && ret >= 0) { + if (s->flush_packets && s->flags & AVFMT_FLAG_FLUSH_PACKETS) + avio_flush(s->pb); + if (s->pb->error < 0) + ret = s->pb->error; + } + if (did_split) av_packet_merge_side_data(pkt);