Index: source/libvpx/vp9/common/vp9_blockd.h |
=================================================================== |
--- source/libvpx/vp9/common/vp9_blockd.h (revision 281795) |
+++ source/libvpx/vp9/common/vp9_blockd.h (working copy) |
@@ -270,18 +270,20 @@ |
void vp9_setup_block_planes(MACROBLOCKD *xd, int ss_x, int ss_y); |
-static INLINE TX_SIZE get_uv_tx_size_impl(TX_SIZE y_tx_size, BLOCK_SIZE bsize) { |
+static INLINE TX_SIZE get_uv_tx_size_impl(TX_SIZE y_tx_size, BLOCK_SIZE bsize, |
+ int xss, int yss) { |
if (bsize < BLOCK_8X8) { |
return TX_4X4; |
} else { |
- // TODO(dkovalev): Assuming YUV420 (ss_x == 1, ss_y == 1) |
- const BLOCK_SIZE plane_bsize = ss_size_lookup[bsize][1][1]; |
+ const BLOCK_SIZE plane_bsize = ss_size_lookup[bsize][xss][yss]; |
return MIN(y_tx_size, max_txsize_lookup[plane_bsize]); |
} |
} |
-static INLINE TX_SIZE get_uv_tx_size(const MB_MODE_INFO *mbmi) { |
- return get_uv_tx_size_impl(mbmi->tx_size, mbmi->sb_type); |
+static INLINE TX_SIZE get_uv_tx_size(const MB_MODE_INFO *mbmi, |
+ const struct macroblockd_plane *pd) { |
+ return get_uv_tx_size_impl(mbmi->tx_size, mbmi->sb_type, pd->subsampling_x, |
+ pd->subsampling_y); |
} |
static INLINE BLOCK_SIZE get_plane_block_size(BLOCK_SIZE bsize, |