shithub: libvpx

Download patch

ref: d09abfa9f78f2d0567932de8cad5e6b8a81dc860
parent: 079183c1a804b9ffbd2a2466c367b0b1ece34eb8
parent: 9faa7e818600c71794deed2765840a3ba3022677
author: Jim Bankoski <jimbankoski@google.com>
date: Wed Sep 11 09:40:11 EDT 2013

Merge "resolve clang issue : implicit convert tx_mode -> tx_size"

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -41,6 +41,15 @@
 
 #define DBG_PRNT_SEGMAP 0
 
+
+static const TX_SIZE tx_mode_to_biggest_tx_size[TX_MODES] = {
+  TX_4X4,  // ONLY_4X4
+  TX_8X8,  // ONLY_8X8
+  TX_16X16,  // ONLY_16X16
+  TX_32X32,  // ONLY_32X32
+  TX_32X32,  // TX_MODE_SELECT
+};
+
 // #define ENC_DEBUG
 #ifdef ENC_DEBUG
 int enc_debug = 0;
@@ -2622,7 +2631,6 @@
     x->act_zbin_adj = 1 - (int) (((int64_t) a + (b >> 1)) / b);
 #endif
 }
-
 static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
                               int mi_row, int mi_col, BLOCK_SIZE bsize) {
   VP9_COMMON * const cm = &cpi->common;
@@ -2730,7 +2738,9 @@
       update_tx_counts(bsize, context, mbmi->tx_size, &cm->counts.tx);
     } else {
       int x, y;
-      TX_SIZE sz = (cm->tx_mode == TX_MODE_SELECT) ? TX_32X32 : cm->tx_mode;
+      TX_SIZE sz = tx_mode_to_biggest_tx_size[cm->tx_mode];
+      assert(sizeof(tx_mode_to_biggest_tx_size) /
+             sizeof(tx_mode_to_biggest_tx_size[0]) == TX_MODES);
       // The new intra coding scheme requires no change of transform size
       if (is_inter_block(&mi->mbmi)) {
         if (sz == TX_32X32 && bsize < BLOCK_32X32)