Move restore_ac_coeffs() call into decode_ac_pred().
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 7 Jan 2010 15:31:54 +0000 (15:31 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 7 Jan 2010 15:31:54 +0000 (15:31 +0000)
This makes decode_ac_pred() easier to understand.

Originally committed as revision 21062 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h263.c

index 5b0ea56..a3426ce 100644 (file)
@@ -462,7 +462,12 @@ static inline int decide_ac_pred(MpegEncContext * s, DCTELEM block[6][64], int d
         score += get_block_rate(s, block[n], s->block_last_index[n], st[n]);
     }
 
-    return score < 0;
+    if(score < 0){
+        return 1;
+    }else{
+        restore_ac_coeffs(s, block, dir, st, zigzag_last_index);
+        return 0;
+    }
 }
 
 /**
@@ -1453,8 +1458,6 @@ void mpeg4_encode_mb(MpegEncContext * s,
 
         if(s->flags & CODEC_FLAG_AC_PRED){
             s->ac_pred= decide_ac_pred(s, block, dir, scan_table, zigzag_last_index);
-            if(!s->ac_pred)
-                restore_ac_coeffs(s, block, dir, scan_table, zigzag_last_index);
         }else{
             for(i=0; i<6; i++)
                 scan_table[i]= s->intra_scantable.permutated;