diff --git a/libavformat/utils.c b/libavformat/utils.c index 5fff3e26fa..9619d95f5e 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2253,23 +2253,20 @@ static void fill_all_stream_timings(AVFormatContext *ic) static void estimate_timings_from_bit_rate(AVFormatContext *ic) { int64_t filesize, duration; - int bit_rate, i; + int i; AVStream *st; /* if bit_rate is already set, we believe it */ if (ic->bit_rate <= 0) { - bit_rate = 0; + int64_t bit_rate = 0; for(i=0;inb_streams;i++) { st = ic->streams[i]; if (st->codec->bit_rate > 0) { - if (INT_MAX - st->codec->bit_rate > bit_rate) { - bit_rate = 0; - break; - } bit_rate += st->codec->bit_rate; } } - ic->bit_rate = bit_rate; + if (bit_rate <= INT_MAX) + ic->bit_rate = bit_rate; } /* if duration is already set, we believe it */