OSDN Git Service

Merge commit '94a417acc05cc5151b473abc0bf51fad26f8c5a0'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 4 Jan 2014 00:18:33 +0000 (01:18 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 4 Jan 2014 00:27:59 +0000 (01:27 +0100)
* commit '94a417acc05cc5151b473abc0bf51fad26f8c5a0':
  mathematics: remove asserts from av_rescale_rnd()

Conflicts:
libavutil/mathematics.c

The asserts are left in place for now as no code checks the return
value, but we sure can change this if application developers
prefer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavutil/mathematics.c

@@@ -59,16 -57,10 +59,19 @@@ int64_t av_gcd(int64_t a, int64_t b)
  
  int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd){
      int64_t r=0;
 +    av_assert2(c > 0);
 +    av_assert2(b >=0);
 +    av_assert2((unsigned)(rnd&~AV_ROUND_PASS_MINMAX)<=5 && (rnd&~AV_ROUND_PASS_MINMAX)!=4);
  
 -    if (c <= 0 || b < 0 || rnd == 4 || rnd > 5)
++    if (c <= 0 || b < 0 || !((unsigned)(rnd&~AV_ROUND_PASS_MINMAX)<=5 && (rnd&~AV_ROUND_PASS_MINMAX)!=4))
+         return INT64_MIN;
 +    if (rnd & AV_ROUND_PASS_MINMAX) {
 +        if (a == INT64_MIN || a == INT64_MAX)
 +            return a;
 +        rnd -= AV_ROUND_PASS_MINMAX;
 +    }
 +
      if(a<0 && a != INT64_MIN) return -av_rescale_rnd(-a, b, c, rnd ^ ((rnd>>1)&1));
  
      if(rnd==AV_ROUND_NEAR_INF) r= c/2;