]> granicus.if.org Git - libvpx/commitdiff
Fix use of get_uv_tx_size in loopfilter
authorJohn Koleszar <jkoleszar@google.com>
Mon, 10 Jun 2013 13:48:58 +0000 (06:48 -0700)
committerJohn Koleszar <jkoleszar@google.com>
Mon, 10 Jun 2013 18:40:57 +0000 (11:40 -0700)
Change the argument of get_uv_tx_size() to be an MBMI pointer, so that the
correct column's MBMI can be passed to the function.

Change-Id: Ied6b8ec33b77cdd353119e8fd2d157811815fc98

vp9/common/vp9_blockd.h
vp9/common/vp9_loopfilter.c
vp9/encoder/vp9_encodemb.c
vp9/encoder/vp9_rdopt.c

index 2156be7b64f6f060ba0ca9310e8c6daa61289d7f..e1901d87debeb7e48ab52fe7fa63c76ffaa41ec9 100644 (file)
@@ -562,8 +562,7 @@ static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, int ib) {
 void vp9_setup_block_dptrs(MACROBLOCKD *xd,
                            int subsampling_x, int subsampling_y);
 
-static TX_SIZE get_uv_tx_size(const MACROBLOCKD *xd) {
-  MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
+static TX_SIZE get_uv_tx_size(const MB_MODE_INFO *mbmi) {
   const TX_SIZE size = mbmi->txfm_size;
 
   switch (mbmi->sb_type) {
@@ -639,8 +638,9 @@ static INLINE void foreach_transformed_block_in_plane(
   // block and transform sizes, in number of 4x4 blocks log 2 ("*_b")
   // 4x4=0, 8x8=2, 16x16=4, 32x32=6, 64x64=8
   // transform size varies per plane, look it up in a common way.
-  const TX_SIZE tx_size =
-      plane ? get_uv_tx_size(xd) : xd->mode_info_context->mbmi.txfm_size;
+  const MB_MODE_INFO* mbmi = &xd->mode_info_context->mbmi;
+  const TX_SIZE tx_size = plane ? get_uv_tx_size(mbmi)
+                                : mbmi->txfm_size;
   const int block_size_b = bw + bh;
   const int txfrm_size_b = tx_size * 2;
 
index 0dc834a69c48e588109cdb5fd5e53f9b44107f6f..49705ffcb94012319f375f0c277aa692dea038e7 100644 (file)
@@ -687,7 +687,8 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd,
       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;
+      const TX_SIZE tx_size = plane ? get_uv_tx_size(&mi[c].mbmi)
+                                    : mi[c].mbmi.txfm_size;
 
       // Filter level can vary per MI
       if (!build_lfi(cm, &mi[c].mbmi,
index aa9cf8d13f7e28daad7dba66cab843fbb7070ef4..90f00d2be14c6672fc51d1d7b35ab1c1ee5daa9a 100644 (file)
@@ -395,8 +395,9 @@ void vp9_optimize_init(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize,
     const struct macroblockd_plane* const plane = &xd->plane[p];
     const int bwl = b_width_log2(bsize) - plane->subsampling_x;
     const int bhl = b_height_log2(bsize) - plane->subsampling_y;
-    const TX_SIZE tx_size = p ? get_uv_tx_size(xd)
-                              : xd->mode_info_context->mbmi.txfm_size;
+    const MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
+    const TX_SIZE tx_size = p ? get_uv_tx_size(mbmi)
+                              : mbmi->txfm_size;
     int i, j;
 
     for (i = 0; i < 1 << bwl; i += 1 << tx_size) {
index c1a27638ee1a19fd46d1c87e8ab21c600da30388..1b222429b3bb50799049bd6b93804e2b39f31260 100644 (file)
@@ -319,7 +319,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
   if (type == PLANE_TYPE_Y_WITH_DC) {
     assert(xd->mode_info_context->mbmi.txfm_size == tx_size);
   } else {
-    TX_SIZE tx_size_uv = get_uv_tx_size(xd);
+    TX_SIZE tx_size_uv = get_uv_tx_size(mbmi);
     assert(tx_size == tx_size_uv);
   }