aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Lhomme <robux4@ycbcr.xyz>2020-11-15 10:00:35 +0100
committerAnton Khirnov <anton@khirnov.net>2020-11-20 15:20:24 +0100
commit5bd870a2123915bdf63d57f468b0ef3c7b6823ea (patch)
treec93e198dc5d3bec1577cca6f18cdfe1293a29c85
parent3a2b786db0fe52ccdcb4a3276758c8ddd4887ce6 (diff)
downloadffmpeg-5bd870a2123915bdf63d57f468b0ef3c7b6823ea.tar.gz
avformat/matroskadec: only use the track duration if it exists
No need to multiplying/dividing when we know it's zero. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r--libavformat/matroskadec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 137674c068..44db2c8358 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3547,7 +3547,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, AVBufferRef *buf
uint32_t lace_size[256];
int n, flags, laces = 0;
uint64_t num;
- int trust_default_duration = 1;
+ int trust_default_duration;
ffio_init_context(&pb, data, size, 0, NULL, NULL, NULL, NULL);
@@ -3615,7 +3615,8 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, AVBufferRef *buf
return res;
}
- if (track->audio.samplerate == 8000) {
+ trust_default_duration = track->default_duration != 0;
+ if (track->audio.samplerate == 8000 && trust_default_duration) {
// If this is needed for more codecs, then add them here
if (st->codecpar->codec_id == AV_CODEC_ID_AC3) {
if (track->audio.samplerate != st->codecpar->sample_rate || !st->codecpar->frame_size)