avformat/wavdec: Dont trust the fact chunk for PCM
Fixes Ticket3033 Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 83fc6c822b06688e572333299927d93eb3c6c426) Conflicts: libavformat/wav.c (cherry picked from commit 89b5f5f494a2387541de8960839c2539a73a31fa)
This commit is contained in:
parent
a5ef62ede1
commit
5df35d9a21
@ -532,8 +532,15 @@ break_loop:
|
||||
|
||||
avio_seek(pb, data_ofs, SEEK_SET);
|
||||
|
||||
if (!sample_count && st->codec->channels && av_get_bits_per_sample(st->codec->codec_id))
|
||||
sample_count = (data_size<<3) / (st->codec->channels * (uint64_t)av_get_bits_per_sample(st->codec->codec_id));
|
||||
if (!sample_count || av_get_exact_bits_per_sample(st->codec->codec_id) > 0)
|
||||
if ( st->codec->channels
|
||||
&& data_size
|
||||
&& av_get_bits_per_sample(st->codec->codec_id)
|
||||
&& wav->data_end <= avio_size(pb))
|
||||
sample_count = (data_size << 3)
|
||||
/
|
||||
(st->codec->channels * (uint64_t)av_get_bits_per_sample(st->codec->codec_id));
|
||||
|
||||
if (sample_count)
|
||||
st->duration = sample_count;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user