avformat/wavdec: Dont trust the fact chunk for PCM

Fixes Ticket3033

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 83fc6c822b)
This commit is contained in:
Michael Niedermayer
2013-10-09 21:43:06 +02:00
committed by Carl Eugen Hoyos
parent 59431fc841
commit 736851264b

View File

@@ -396,11 +396,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) && 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 || 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;