aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2013-08-17 14:48:33 -0300
committerJames Almer <jamrial@gmail.com>2013-08-25 19:40:58 -0300
commitfc83cfda36d540e10f2d93c15768ed8a4d240342 (patch)
tree178b5f9fe2fad4da77ef36dd010e6423f72caef0
parent986b29407cf361f352644d972aa818f35d63df59 (diff)
downloadffmpeg-fc83cfda36d540e10f2d93c15768ed8a4d240342.tar.gz
matroskadec: Improve TTA duration calculation
Calculate the duration as accurately as possible to improve decoding of samples where the last frame is smaller than the rest. Signed-off-by: James Almer <jamrial@gmail.com> Approved-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit af248fa1174200acb537a6ab1198bb2fed38e884)
-rw-r--r--libavformat/matroskadec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 5783acacfb..fc584bce86 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1665,7 +1665,7 @@ static int matroska_read_header(AVFormatContext *s)
avio_wl16(&b, track->audio.channels);
avio_wl16(&b, track->audio.bitdepth);
avio_wl32(&b, track->audio.out_samplerate);
- avio_wl32(&b, matroska->ctx->duration * track->audio.out_samplerate);
+ avio_wl32(&b, av_rescale((matroska->duration * matroska->time_scale), track->audio.out_samplerate, AV_TIME_BASE * 1000));
} else if (codec_id == AV_CODEC_ID_RV10 || codec_id == AV_CODEC_ID_RV20 ||
codec_id == AV_CODEC_ID_RV30 || codec_id == AV_CODEC_ID_RV40) {
extradata_offset = 26;