lavf: always call avio_flush in av_write_trailer.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 10 Apr 2012 19:36:30 +0000 (21:36 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Wed, 11 Apr 2012 22:13:53 +0000 (00:13 +0200)
Otherwise for muxers like e.g. latmenc that never call
avio_flush (and do not have a write_trailer function)
a part of the data will always be missing.
Also update references for the voc muxer, which was also
buggy before and did not write out all data.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
libavformat/utils.c
tests/ref/lavf/voc
tests/ref/lavf/voc_s16

index ebf34de..dd3108f 100644 (file)
@@ -3567,6 +3567,8 @@ int av_write_trailer(AVFormatContext *s)
     if(s->oformat->write_trailer)
         ret = s->oformat->write_trailer(s);
 fail:
+    if (s->pb)
+       avio_flush(s->pb);
     if(ret == 0)
        ret = s->pb ? s->pb->error : 0;
     for(i=0;i<s->nb_streams;i++) {
index 25e8b44..ea903b6 100644 (file)
@@ -1,3 +1,3 @@
-b0bc287ce4e3eef7c1012610dd7ff6d0 *./tests/data/lavf/lavf.voc
-32768 ./tests/data/lavf/lavf.voc
-./tests/data/lavf/lavf.voc CRC=0xa2d77c12
+5c4ee01048e7a8a138a97e80cf7a1924 *./tests/data/lavf/lavf.voc
+45261 ./tests/data/lavf/lavf.voc
+./tests/data/lavf/lavf.voc CRC=0x74b2b546
index 425d965..d53c950 100644 (file)
@@ -1,3 +1,3 @@
-b20728bf036d2e23508869acbad4e576 *./tests/data/lavf/lavf.s16.voc
-163840 ./tests/data/lavf/lavf.s16.voc
-./tests/data/lavf/lavf.s16.voc CRC=0xfa9b6c39
+8ed10b311e49b4d4b18679b126492159 *./tests/data/lavf/lavf.s16.voc
+180437 ./tests/data/lavf/lavf.s16.voc
+./tests/data/lavf/lavf.s16.voc CRC=0x7bd585ff