From: Michael Niedermayer Date: Mon, 15 Jul 2013 22:39:33 +0000 (+0200) Subject: Merge remote-tracking branch 'qatar/master' X-Git-Tag: android-x86-4.4-r1~2319 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4f1d3e02122e1896c2d946ae8c32b8b3f767aa19;p=android-x86%2Fexternal-ffmpeg.git Merge remote-tracking branch 'qatar/master' * qatar/master: lavf: Make sure avg_frame_rate can be calculated without integer overflow Merged-by: Michael Niedermayer --- 4f1d3e02122e1896c2d946ae8c32b8b3f767aa19 diff --cc libavformat/utils.c index 070c224ecd,80b1ce2f7c..9fd5e6e3e5 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@@ -2954,9 -2355,12 +2954,12 @@@ int avformat_find_stream_info(AVFormatC int best_fps = 0; double best_error = 0.01; - if (delta_dts >= INT64_MAX / st->time_base.num || - delta_packets >= INT64_MAX / st->time_base.den) ++ if (st->info->codec_info_duration >= INT64_MAX / st->time_base.num / 2|| ++ st->info->codec_info_duration_fields >= INT64_MAX / st->time_base.den) + continue; av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den, - delta_packets*(int64_t)st->time_base.den, - delta_dts*(int64_t)st->time_base.num, 60000); + st->info->codec_info_duration_fields*(int64_t)st->time_base.den, + st->info->codec_info_duration*2*(int64_t)st->time_base.num, 60000); /* round guessed framerate to a "standard" framerate if it's * within 1% of the original estimate*/