From cf86fd0069eef382ff14a1e20b73e1bc2601418d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 26 May 2015 20:09:40 +0200 Subject: [PATCH] avformat/matroskaenc: Avoid floats in default duration calculation Signed-off-by: Michael Niedermayer --- libavformat/matroskaenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index c4c58f4d09..aa9d119128 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -926,10 +926,10 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, put_ebml_uint(pb, MATROSKA_ID_TRACKTYPE, MATROSKA_TRACK_TYPE_VIDEO); if( st->avg_frame_rate.num > 0 && st->avg_frame_rate.den > 0 - && 1.0/av_q2d(st->avg_frame_rate) > av_q2d(codec->time_base)) - put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, 1E9 / av_q2d(st->avg_frame_rate)); + && av_cmp_q(av_inv_q(st->avg_frame_rate), codec->time_base) > 0) + put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, 1000000000LL * st->avg_frame_rate.den / st->avg_frame_rate.num); else - put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, av_q2d(codec->time_base)*1E9); + put_ebml_uint(pb, MATROSKA_ID_TRACKDEFAULTDURATION, 1000000000LL * codec->time_base.num / codec->time_base.den); if (!native_id && ff_codec_get_tag(ff_codec_movvideo_tags, codec->codec_id) &&