[FFmpeg-devel] [PATCH]Initialize riff and wav size fields to -1 instead of 0

Carl Eugen Hoyos cehoyos at ag.or.at
Sat May 3 11:15:07 CEST 2014


Hi!

The following command produces an output file that WMP doesn't play:
$ ffmpeg -f lavfi -i sine -t 10 -f wav - > out.wav
WMP believes the output file is empty, attached patch allows to write 
playable files.
(Fixes ticket #3346.)

Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
index 8701358..66c0ff2 100644
--- a/libavformat/riffenc.c
+++ b/libavformat/riffenc.c
@@ -31,7 +31,7 @@
 int64_t ff_start_tag(AVIOContext *pb, const char *tag)
 {
     ffio_wfourcc(pb, tag);
-    avio_wl32(pb, 0);
+    avio_wl32(pb, -1);
     return avio_tell(pb);
 }
 
diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 0ddd218..c892c7b 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -126,7 +126,7 @@ static int wav_write_header(AVFormatContext *s)
         avio_wl32(pb, -1); /* RF64 chunk size: use size in ds64 */
     } else {
         ffio_wfourcc(pb, "RIFF");
-        avio_wl32(pb, 0); /* file length */
+        avio_wl32(pb, -1); /* file length */
     }
 
     ffio_wfourcc(pb, "WAVE");
diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak
index ef51216..725fb7e 100644
--- a/tests/fate/filter-audio.mak
+++ b/tests/fate/filter-audio.mak
@@ -58,7 +58,7 @@ fate-filter-channelmap-one-int: SRC = $(TARGET_PATH)/tests/data/asynth-44100-6.w
 fate-filter-channelmap-one-int: tests/data/asynth-44100-6.wav
 fate-filter-channelmap-one-int: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_int -f wav -flags +bitexact
 fate-filter-channelmap-one-int: CMP = oneline
-fate-filter-channelmap-one-int: REF = 06168d06085e2c0603e4e118ba4cade2
+fate-filter-channelmap-one-int: REF = 428b8f9fac6d57147069b97335019ef5
 
 FATE_FILTER_CHANNELMAP += fate-filter-channelmap-one-str
 fate-filter-channelmap-one-str: tests/data/filtergraphs/channelmap_one_str
@@ -66,7 +66,7 @@ fate-filter-channelmap-one-str: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.w
 fate-filter-channelmap-one-str: tests/data/asynth-44100-2.wav
 fate-filter-channelmap-one-str: CMD = md5 -i $(SRC) -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/channelmap_one_str -f wav -flags +bitexact
 fate-filter-channelmap-one-str: CMP = oneline
-fate-filter-channelmap-one-str: REF = 49ed4aaec717f1b28137c9e1f01f343b
+fate-filter-channelmap-one-str: REF = e788890db6a11c2fb29d7c4229072d49
 
 FATE_AFILTER-$(call FILTERDEMDECENCMUX, CHANNELMAP, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_FILTER_CHANNELMAP)
 
diff --git a/tests/ref/fate/mapchan-6ch-extract-2 b/tests/ref/fate/mapchan-6ch-extract-2
index ba08c86..435cbec 100644
--- a/tests/ref/fate/mapchan-6ch-extract-2
+++ b/tests/ref/fate/mapchan-6ch-extract-2
@@ -1,2 +1,2 @@
-3be6f8cefbf3c2e6dce670ee190b4313
-b8791d1c07de59dd1badf2c7b5f62a74
+955514d4a026a4a48695866d2ec904d0
+498a49e692ee2e3c454863654275c4bb
diff --git a/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono b/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono
index 618b9d9..a47c85c 100644
--- a/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono
+++ b/tests/ref/fate/mapchan-6ch-extract-2-downmix-mono
@@ -1 +1 @@
-e02d9537df5f534d14937bf7ab9b9a40
+2727e5418eb5b8f89954f140d9f3a19a
diff --git a/tests/ref/fate/mapchan-silent-mono b/tests/ref/fate/mapchan-silent-mono
index 7d77801..f720c31 100644
--- a/tests/ref/fate/mapchan-silent-mono
+++ b/tests/ref/fate/mapchan-silent-mono
@@ -1 +1 @@
-c37237a92bcf708bc0e20b713665a5a7
+16dc73c037897dff9b1d3e3d8561dc73
diff --git a/tests/ref/fate/v410enc b/tests/ref/fate/v410enc
index ab219bb..b2c728e 100644
--- a/tests/ref/fate/v410enc
+++ b/tests/ref/fate/v410enc
@@ -1 +1 @@
-e5c0b1f17d2a64a416dcf9bf7a38d9d9
+f7cf1b743c18f74d047ce8d6ea05d3d9


More information about the ffmpeg-devel mailing list