avutil/softfloat: Fix exponent underflow in av_div_sf()
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 8 Nov 2015 12:59:21 +0000 (13:59 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 8 Nov 2015 13:23:38 +0000 (14:23 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavutil/softfloat.h

index e47420e..e5bfbbd 100644 (file)
@@ -111,7 +111,10 @@ static inline av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b){
 static inline av_const SoftFloat av_div_sf(SoftFloat a, SoftFloat b){
     a.exp -= b.exp;
     a.mant = ((int64_t)a.mant<<(ONE_BITS+1)) / b.mant;
-    return av_normalize1_sf(a);
+    a = av_normalize1_sf(a);
+    if (!a.mant || a.exp < MIN_EXP)
+        return FLOAT_0;
+    return a;
 }
 
 static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){