avformat/utils: Fix bitrate overflow check
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Sep 2013 12:36:12 +0000 (14:36 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Sep 2013 12:49:03 +0000 (14:49 +0200)
The check added in df33a58e5311ee9a64a573889b883a80e981af7b does not work
at all, rather it broke the summing of bitrates completely.
The comparission was wrong way around.
This commit replaces it by a simpler and hopefully clearer check

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index c99df71..277b559 100644 (file)
@@ -2219,18 +2219,15 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)
 
     /* if bit_rate is already set, we believe it */
     if (ic->bit_rate <= 0) {
-        int bit_rate = 0;
+        int64_t bit_rate = 0;
         for(i=0;i<ic->nb_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 */