[FFmpeg-cvslog] riff: don't overwrite bps from WAVEFORMATEX if EXTENSIBLE doesn' t contain that data.
Hendrik Leppkes
git at videolan.org
Thu Feb 2 12:35:52 EET 2017
ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Wed May 2 16:34:45 2012 +0200| [7f549b8338ed3775fec4bf10421ff5744e5866dd] | committer: Anton Khirnov
riff: don't overwrite bps from WAVEFORMATEX if EXTENSIBLE doesn't contain that data.
According to the specification on the MSDN [1], 0 is valid for that
particular field, and it should be ignored in that case.
[1]: http://msdn.microsoft.com/en-us/library/windows/desktop/dd757714(v=vs.85).aspx
Bug-Id: 950
Signed-off-by: Anton Khirnov <anton at khirnov.net>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7f549b8338ed3775fec4bf10421ff5744e5866dd
---
libavformat/riffdec.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
index 531413c..8124835 100644
--- a/libavformat/riffdec.c
+++ b/libavformat/riffdec.c
@@ -57,7 +57,11 @@ enum AVCodecID ff_codec_guid_get_id(const AVCodecGuid *guids, ff_asf_guid guid)
static void parse_waveformatex(AVIOContext *pb, AVCodecParameters *par)
{
ff_asf_guid subformat;
- par->bits_per_coded_sample = avio_rl16(pb);
+ int bps;
+
+ bps = avio_rl16(pb);
+ if (bps)
+ par->bits_per_coded_sample = bps;
par->channel_layout = avio_rl32(pb); /* dwChannelMask */
ff_get_guid(pb, &subformat);
More information about the ffmpeg-cvslog
mailing list