diff --git a/libavformat/utils.c b/libavformat/utils.c index 180df782f0..6c6f4e1bd1 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3348,8 +3348,10 @@ int ff_rfps_add_frame(AVFormatContext *ic, AVStream *st, int64_t ts) } } } - st->info->duration_count++; - st->info->rfps_duration_sum += duration; + if (st->info->rfps_duration_sum <= INT64_MAX - duration) { + st->info->duration_count++; + st->info->rfps_duration_sum += duration; + } if (st->info->duration_count % 10 == 0) { int n = st->info->duration_count;