Browse Source

avformat/utils: Fix bitrate overflow check

The check added in df33a58e53 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>
tags/n2.1
Michael Niedermayer 11 years ago
parent
commit
a5d67bc796
1 changed files with 3 additions and 6 deletions
  1. +3
    -6
      libavformat/utils.c

+ 3
- 6
libavformat/utils.c View File

@@ -2219,18 +2219,15 @@ static void estimate_timings_from_bit_rate(AVFormatContext *ic)


/* if bit_rate is already set, we believe it */ /* if bit_rate is already set, we believe it */
if (ic->bit_rate <= 0) { if (ic->bit_rate <= 0) {
int bit_rate = 0;
int64_t bit_rate = 0;
for(i=0;i<ic->nb_streams;i++) { for(i=0;i<ic->nb_streams;i++) {
st = ic->streams[i]; st = ic->streams[i];
if (st->codec->bit_rate > 0) { 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; 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 */ /* if duration is already set, we believe it */


Loading…
Cancel
Save