]> granicus.if.org Git - libvpx/commitdiff
Loopfilter: bug fix in sb_type usage
authorJanne Salonen <jsalonen@google.com>
Mon, 10 Jun 2013 06:21:12 +0000 (09:21 +0300)
committerJohn Koleszar <jkoleszar@google.com>
Mon, 10 Jun 2013 13:40:05 +0000 (06:40 -0700)
Was always using sb_type of first column in a row of 8x8 units when
determining decoded block edges as a subcondition for loop filter
skipping.

Change-Id: Ib17554633a63a90b70cdaa7bed65db035a8ad9d8

vp9/common/vp9_loopfilter.c

index d715e9116f1231349995c4e6b1e9b628d8054852..cb80d14572ddf534b0d37f5323024a1b7305155f 100644 (file)
@@ -679,12 +679,12 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd,
       const int skip_this = mi[c].mbmi.mb_skip_coeff
                             && mi[c].mbmi.ref_frame != INTRA_FRAME;
       // left edge of current unit is block/partition edge -> no skip
-      const int block_edge_left = b_width_log2(mi->mbmi.sb_type) ?
-          !(c & ((1 << (b_width_log2(mi->mbmi.sb_type)-1)) - 1)) : 1;
+      const int block_edge_left = b_width_log2(mi[c].mbmi.sb_type) ?
+          !(c & ((1 << (b_width_log2(mi[c].mbmi.sb_type)-1)) - 1)) : 1;
       const int skip_this_c = skip_this && !block_edge_left;
       // top edge of current unit is block/partition edge -> no skip
-      const int block_edge_above = b_height_log2(mi->mbmi.sb_type) ?
-          !(r & ((1 << (b_height_log2(mi->mbmi.sb_type)-1)) - 1)) : 1;
+      const int block_edge_above = b_height_log2(mi[c].mbmi.sb_type) ?
+          !(r & ((1 << (b_height_log2(mi[c].mbmi.sb_type)-1)) - 1)) : 1;
       const int skip_this_r = skip_this && !block_edge_above;
       const TX_SIZE tx_size = plane ? get_uv_tx_size(xd) : mi[c].mbmi.txfm_size;