Module: libav
Branch: master
Commit: ac97d47d9b9276a930081d529a3997af13a7c0be

Author:    Luca Barbato <lu_z...@gentoo.org>
Committer: Luca Barbato <lu_z...@gentoo.org>
Date:      Tue Apr 17 16:32:07 2012 -0700

mkv: use av_reduce instead of av_d2q for framerate estimation

It avoids some rounding errors.

---

 libavformat/matroskadec.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 8323601..03d7c32 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1550,9 +1550,11 @@ static int matroska_read_header(AVFormatContext *s)
                       255);
             if (st->codec->codec_id != CODEC_ID_H264)
             st->need_parsing = AVSTREAM_PARSE_HEADERS;
-            if (track->default_duration)
-                st->r_frame_rate   =
-                st->avg_frame_rate = 
av_d2q(1000000000.0/track->default_duration, INT_MAX);
+            if (track->default_duration) {
+                av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den,
+                          1000000000, track->default_duration, 30000);
+                st->avg_frame_rate = st->r_frame_rate;
+            }
         } else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
             st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
             st->codec->sample_rate = track->audio.out_samplerate;

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to