ffv1: avoid checking a double for equality
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 12 Oct 2012 23:47:31 +0000 (01:47 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 12 Oct 2012 23:51:45 +0000 (01:51 +0200)
if 0.0 != 0.0 a out of array read would occur, equal checks
with floating point may behave in such odd ways, though
this is very unlikely in a real implementation of a compiler

Fixes: CID718936
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/ffv1.c

index a09644e..7787070 100644 (file)
@@ -275,7 +275,7 @@ static void find_best_state(uint8_t best_state[256][256], const uint8_t one_stat
             occ[j]=1.0;
             for(k=0; k<256; k++){
                 double newocc[256]={0};
-                for(m=0; m<256; m++){
+                for(m=1; m<256; m++){
                     if(occ[m]){
                         len -=occ[m]*(     p *l2tab[    m]
                                       + (1-p)*l2tab[256-m]);