diff cavs.c @ 3409:584ff6431043 libavcodec

simplify intra prediction mode decoding
author michael
date Tue, 04 Jul 2006 17:06:43 +0000
parents 73c648ae1c74
children 3b72265410f3
line wrap: on
line diff
--- a/cavs.c	Tue Jul 04 16:42:22 2006 +0000
+++ b/cavs.c	Tue Jul 04 17:06:43 2006 +0000
@@ -885,17 +885,14 @@
 
         nA = h->pred_mode_Y[pos-1];
         nB = h->pred_mode_Y[pos-3];
-        if((nA == NOT_AVAIL) || (nB == NOT_AVAIL))
-            predpred = 2;
-        else
-            predpred = FFMIN(nA,nB);
-        if(get_bits1(gb))
-            h->pred_mode_Y[pos] = predpred;
-        else {
-            h->pred_mode_Y[pos] = get_bits(gb,2);
-            if(h->pred_mode_Y[pos] >= predpred)
-                h->pred_mode_Y[pos]++;
+        predpred = FFMIN(nA,nB);
+        if(predpred == NOT_AVAIL) // if either is not available
+            predpred = INTRA_L_LP;
+        if(!get_bits1(gb)){
+            int rem_mode= get_bits(gb, 2);
+            predpred = rem_mode + (rem_mode >= predpred);
         }
+        h->pred_mode_Y[pos] = predpred;
     }
     pred_mode_uv = get_ue_golomb(gb);
     if(pred_mode_uv > 6) {