diff options
author | John Brooks <john.brooks@bluecherry.net> | 2011-10-13 08:34:20 +0000 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2011-10-14 13:28:58 +0200 |
commit | 2c4e08d89327595f7f4be57dda4b3775e1198d5e (patch) | |
tree | 8d5ea42065bb095e6cfd854ef3cdbae4b65cbe0b /libavformat/riff.c | |
parent | 582f231142c62a0bd6391efbd5a2ac119d73bb40 (diff) | |
download | ffmpeg-2c4e08d89327595f7f4be57dda4b3775e1198d5e.tar.gz |
riff: always generate a proper WAVEFORMATEX structure in ff_put_wav_header
The cbSize field should be included in all cases, even with PCM where
its value is ignored.
Fixes encoding PCM audio in Matroska for some players which insist on
a full WAVEFORMATEX structure for A_MS/ACM audio.
Since fate uses wav files for the audio test a larger number of tests
has changed checksums or shifted positions due to the 2 byte longer
wave header.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Diffstat (limited to 'libavformat/riff.c')
-rw-r--r-- | libavformat/riff.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libavformat/riff.c b/libavformat/riff.c index fec3c8851a..8587806647 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -439,8 +439,6 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc) riff_extradata_start= enc->extradata; riff_extradata= enc->extradata + enc->extradata_size; hdrsize += enc->extradata_size; - } else if (!waveformatextensible){ - hdrsize -= 2; } if(waveformatextensible) { /* write WAVEFORMATEXTENSIBLE extensions */ hdrsize += 22; @@ -451,8 +449,8 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc) avio_wl32(pb, 0x00100000); avio_wl32(pb, 0xAA000080); avio_wl32(pb, 0x719B3800); - } else if(riff_extradata - riff_extradata_start) { - avio_wl16(pb, riff_extradata - riff_extradata_start); + } else { + avio_wl16(pb, riff_extradata - riff_extradata_start); /* cbSize */ } avio_write(pb, riff_extradata_start, riff_extradata - riff_extradata_start); if(hdrsize&1){ |