Browse Source

wavdec: fix duration calculation for files with invalid data size

Some wav files report a data size that is bigger than the actual file size.
Fall back to estimation from bitrate in such cases.

Fixes ticket #2065.

Signed-off-by: James Almer <jamrial@gmail.com>
tags/n1.1
James Almer Paul B Mahol 13 years ago
parent
commit
d59d39e164
1 changed files with 1 additions and 1 deletions
  1. +1
    -1
      libavformat/wavdec.c

+ 1
- 1
libavformat/wavdec.c View File

@@ -365,7 +365,7 @@ break_loop:

avio_seek(pb, data_ofs, SEEK_SET);

if (!sample_count && st->codec->channels && av_get_bits_per_sample(st->codec->codec_id))
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)
st->duration = sample_count;


Loading…
Cancel
Save