]> granicus.if.org Git - libvpx/commitdiff
Removed bc and bc2 vp8_readers from VP8D_COMP
authorScott LaVarnway <slavarnway@google.com>
Fri, 21 Sep 2012 18:00:29 +0000 (11:00 -0700)
committerScott LaVarnway <slavarnway@google.com>
Fri, 21 Sep 2012 18:00:29 +0000 (11:00 -0700)
Used mbc instead.

Change-Id: If22136b4fee89b68ca2246265f3c27853701136c

vp8/decoder/decodemv.c
vp8/decoder/decodframe.c
vp8/decoder/onyxd_int.h
vp8/decoder/threading.c

index 838a31b85e40b12fe5c49a98067a9796dc570174..8027a07ed44a671213355b75bbbf255cd75be35f 100644 (file)
@@ -48,7 +48,7 @@ static MB_PREDICTION_MODE read_uv_mode(vp8_reader *bc, const vp8_prob *p)
 
 static void read_kf_modes(VP8D_COMP *pbi, MODE_INFO *mi)
 {
-    vp8_reader *const bc = & pbi->bc;
+    vp8_reader *const bc = & pbi->mbc[8];
     const int mis = pbi->common.mode_info_stride;
 
     mi->mbmi.ref_frame = INTRA_FRAME;
@@ -150,7 +150,7 @@ static const unsigned char mbsplit_fill_offset[4][16] = {
 
 static void mb_mode_mv_init(VP8D_COMP *pbi)
 {
-    vp8_reader *const bc = & pbi->bc;
+    vp8_reader *const bc = & pbi->mbc[8];
     MV_CONTEXT *const mvc = pbi->common.fc.mvc;
 
 #if CONFIG_ERROR_CONCEALMENT
@@ -338,7 +338,7 @@ static void decode_split_mv(vp8_reader *const bc, MODE_INFO *mi,
 
 static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi)
 {
-    vp8_reader *const bc = & pbi->bc;
+    vp8_reader *const bc = & pbi->mbc[8];
     mbmi->ref_frame = (MV_REFERENCE_FRAME) vp8_read(bc, pbi->prob_intra);
     if (mbmi->ref_frame)    /* inter MB */
     {
@@ -596,14 +596,14 @@ static void decode_mb_mode_mvs(VP8D_COMP *pbi, MODE_INFO *mi,
      * By default on a key frame reset all MBs to segment 0
      */
     if (pbi->mb.update_mb_segmentation_map)
-        read_mb_features(&pbi->bc, &mi->mbmi, &pbi->mb);
+        read_mb_features(&pbi->mbc[8], &mi->mbmi, &pbi->mb);
     else if(pbi->common.frame_type == KEY_FRAME)
         mi->mbmi.segment_id = 0;
 
     /* Read the macroblock coeff skip flag if this feature is in use,
      * else default to 0 */
     if (pbi->common.mb_no_coeff_skip)
-        mi->mbmi.mb_skip_coeff = vp8_read(&pbi->bc, pbi->prob_skip_false);
+        mi->mbmi.mb_skip_coeff = vp8_read(&pbi->mbc[8], pbi->prob_skip_false);
     else
         mi->mbmi.mb_skip_coeff = 0;
 
@@ -645,7 +645,7 @@ void vp8_decode_mode_mvs(VP8D_COMP *pbi)
 #if CONFIG_ERROR_CONCEALMENT
             /* look for corruption. set mvs_corrupt_from_mb to the current
              * mb_num if the frame is corrupt from this macroblock. */
-            if (vp8dx_bool_error(&pbi->bc) && mb_num <
+            if (vp8dx_bool_error(&pbi->mbc[8]) && mb_num <
                 (int)pbi->mvs_corrupt_from_mb)
             {
                 pbi->mvs_corrupt_from_mb = mb_num;
index 877eb7738680f00cc43606d53d9693566d0712ca..f09dad42d254cd495c2a77c9875ffb1261320175 100644 (file)
@@ -823,7 +823,7 @@ static unsigned int read_available_partition_size(
 static void setup_token_decoder(VP8D_COMP *pbi,
                                 const unsigned char* token_part_sizes)
 {
-    vp8_reader *bool_decoder = &pbi->bc2;
+    vp8_reader *bool_decoder = &pbi->mbc[0];
     unsigned int partition_idx;
     unsigned int fragment_idx;
     unsigned int num_token_partitions;
@@ -831,14 +831,10 @@ static void setup_token_decoder(VP8D_COMP *pbi,
                                           pbi->fragment_sizes[0];
 
     TOKEN_PARTITION multi_token_partition =
-            (TOKEN_PARTITION)vp8_read_literal(&pbi->bc, 2);
-    if (!vp8dx_bool_error(&pbi->bc))
+            (TOKEN_PARTITION)vp8_read_literal(&pbi->mbc[8], 2);
+    if (!vp8dx_bool_error(&pbi->mbc[8]))
         pbi->common.multi_token_partition = multi_token_partition;
     num_token_partitions = 1 << pbi->common.multi_token_partition;
-    if (num_token_partitions > 1)
-    {
-        bool_decoder = &pbi->mbc[0];
-    }
 
     /* Check for partitions within the fragments and unpack the fragments
      * so that each fragment pointer points to its corresponding partition. */
@@ -983,7 +979,7 @@ static void init_frame(VP8D_COMP *pbi)
 
 int vp8_decode_frame(VP8D_COMP *pbi)
 {
-    vp8_reader *const bc = & pbi->bc;
+    vp8_reader *const bc = & pbi->mbc[8];
     VP8_COMMON *const pc = & pbi->common;
     MACROBLOCKD *const xd  = & pbi->mb;
     const unsigned char *data = pbi->fragments[0];
@@ -1256,7 +1252,7 @@ int vp8_decode_frame(VP8D_COMP *pbi)
 
     setup_token_decoder(pbi, data + first_partition_length_in_bytes);
 
-    xd->current_bc = &pbi->bc2;
+    xd->current_bc = &pbi->mbc[0];
 
     /* Read the default quantizers. */
     {
index e6c814accd7417181fc7d2484338beef6c70d021..d6926a8ecc75c3ab7259d634dd99e225ea02dc10 100644 (file)
@@ -39,7 +39,8 @@ typedef struct VP8D_COMP
 
     DECLARE_ALIGNED(16, VP8_COMMON, common);
 
-    vp8_reader bc, bc2;
+    /* the last partition will be used for the modes/mvs */
+    vp8_reader mbc[MAX_PARTITIONS];
 
     VP8D_CONFIG oxcf;
 
@@ -77,7 +78,6 @@ typedef struct VP8D_COMP
     /* end of threading data */
 #endif
 
-    vp8_reader mbc[8];
     int64_t last_time_stamp;
     int   ready_for_new_data;
 
index de14789cbd50c64a664066bced0024c25560d53d..153052273152516f01bbce832221937da1005270 100644 (file)
@@ -64,7 +64,7 @@ static void setup_decoding_thread_data(VP8D_COMP *pbi, MACROBLOCKD *xd, MB_ROW_D
         mbd->mode_ref_lf_delta_enabled    = xd->mode_ref_lf_delta_enabled;
         mbd->mode_ref_lf_delta_update    = xd->mode_ref_lf_delta_update;
 
-        mbd->current_bc = &pbi->bc2;
+        mbd->current_bc = &pbi->mbc[0];
 
         vpx_memcpy(mbd->dequant_y1_dc, xd->dequant_y1_dc, sizeof(xd->dequant_y1_dc));
         vpx_memcpy(mbd->dequant_y1, xd->dequant_y1, sizeof(xd->dequant_y1));