Message ID | 20201115090035.26159-1-robux4@ycbcr.xyz |
---|---|
State | Accepted |
Commit | 5bd870a2123915bdf63d57f468b0ef3c7b6823ea |
Headers | show |
Series | [FFmpeg-devel] avformat/matroskadec: only use the track duration if it exists | expand |
Context | Check | Description |
---|---|---|
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
Quoting Steve Lhomme (2020-11-15 10:00:35) > No need to multiplying/dividing when we know it's zero. > --- > libavformat/matroskadec.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > Looks reasonable
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 4ff472005e..25b22afebe 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)