]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/h264.c
simplify
[ffmpeg] / libavcodec / h264.c
index 856b0804a43493172ac7cca574d200fdad1e0302..6025bce727f4cb92b35b63182c4e983e098e7d7d 100644 (file)
@@ -5532,24 +5532,17 @@ static void filter_mb( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8
     /* dir : 0 -> vertical edge, 1 -> horizontal edge */
     for( dir = 0; dir < 2; dir++ )
     {
-        int start = 0;
         int edge;
+        const int mbm_xy = dir == 0 ? mb_xy -1 : mb_xy - s->mb_stride;
+        int start = h->slice_table[mbm_xy] == 255 ? 1 : 0;
 
-        /* test picture boundary */
-        if( ( dir == 0 && mb_x == 0 ) || ( dir == 1 && mb_y == 0 ) ) {
+        if (h->deblocking_filter==2 && h->slice_table[mbm_xy] != h->slice_table[mb_xy])
             start = 1;
-        }
-        if( 0 == start && 2 == h->deblocking_filter) {
-            const int mbn_xy = dir == 0 ? mb_xy -1 : mb_xy - s->mb_stride;
-            if (h->slice_table[mbn_xy] != h->slice_table[mb_xy]) {
-                start = 1;
-            }
-        }
 
         /* Calculate bS */
         for( edge = start; edge < 4; edge++ ) {
             /* mbn_xy: neighbour macroblock (how that works for field ?) */
-            int mbn_xy = edge > 0 ? mb_xy : ( dir == 0 ? mb_xy -1 : mb_xy - s->mb_stride );
+            int mbn_xy = edge > 0 ? mb_xy : mbm_xy;
             int bS[4];
             int qp;