simplify ff_h261_reorder_mb_index
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 28 Oct 2004 18:17:48 +0000 (18:17 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 28 Oct 2004 18:17:48 +0000 (18:17 +0000)
Originally committed as revision 3649 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h261.c

index 8a6b27f..8b73f38 100644 (file)
@@ -150,38 +150,21 @@ static void h261_encode_gob_header(MpegEncContext * s, int mb_line){
 }
 
 void ff_h261_reorder_mb_index(MpegEncContext* s){
+    int index= s->mb_x + s->mb_y*s->mb_width;
+
+    if(index % 33 == 0)
+        h261_encode_gob_header(s,0);
+
     /* for CIF the GOB's are fragmented in the middle of a scanline
        that's why we need to adjust the x and y index of the macroblocks */
     if(ff_h261_get_picture_format(s->width,s->height) == 1){ // CIF
-        if((s->mb_x == 0 && (s->mb_y % 3 == 0) ) || (s->mb_x == 11 && ((s->mb_y -1 )% 3 == 0) ))
-            h261_encode_gob_header(s,0);
-        if(s->mb_x < 11 ){
-            if((s->mb_y % 3) == 1 ){
-                s->mb_x += 0;
-                s->mb_y += 1;
-            }
-            else if( (s->mb_y % 3) == 2 ){
-                s->mb_x += 11;
-                s->mb_y -= 1;
-            }
-        }
-        else{
-            if((s->mb_y % 3) == 1 ){
-                s->mb_x += 0;
-                s->mb_y -= 1;
-            }
-            else if( (s->mb_y % 3) == 0 ){
-                s->mb_x -= 11;
-                s->mb_y += 1;
-            }
-        }
+        s->mb_x =     index % 11 ; index /= 11;
+        s->mb_y =     index %  3 ; index /=  3;
+        s->mb_x+= 11*(index %  2); index /=  2;
+        s->mb_y+=  3*index;
+        
         ff_init_block_index(s);
         ff_update_block_index(s);
-    /* for QCIF we don't need to reorder MB's
-       there the GOB's aren't fragmented in the middle of a scanline */
-    }else if(ff_h261_get_picture_format(s->width,s->height) == 0){ // QCIF
-        if(s->mb_y % 3 == 0 && s->mb_x == 0)
-            h261_encode_gob_header(s,0);
     }
 }