From 03c0af87478b15b0dd2cb3c069a795c7f29a6cc4 Mon Sep 17 00:00:00 2001
From: Scott LaVarnway <slavarnway@google.com>
Date: Fri, 2 Nov 2012 18:03:03 -0700
Subject: [PATCH] Moved skip_true_count to macroblock struct

Change-Id: Ie9a26be7c9baa54a0e43a63ed6c77f2746477a9c
---
 vp8/encoder/bitstream.c   | 4 ++--
 vp8/encoder/block.h       | 1 +
 vp8/encoder/encodeframe.c | 6 ++++--
 vp8/encoder/ethreading.c  | 1 +
 vp8/encoder/onyx_int.h    | 1 -
 vp8/encoder/tokenize.c    | 2 +-
 6 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c
index cc8f4395c6..7ab6dc906a 100644
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -539,7 +539,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
     {
         int total_mbs = pc->mb_rows * pc->mb_cols;
 
-        prob_skip_false = (total_mbs - cpi->skip_true_count ) * 256 / total_mbs;
+        prob_skip_false = (total_mbs - cpi->mb.skip_true_count ) * 256 / total_mbs;
 
         if (prob_skip_false <= 1)
             prob_skip_false = 1;
@@ -730,7 +730,7 @@ static void write_kfmodes(VP8_COMP *cpi)
     {
         int total_mbs = c->mb_rows * c->mb_cols;
 
-        prob_skip_false = (total_mbs - cpi->skip_true_count ) * 256 / total_mbs;
+        prob_skip_false = (total_mbs - cpi->mb.skip_true_count ) * 256 / total_mbs;
 
         if (prob_skip_false <= 1)
             prob_skip_false = 1;
diff --git a/vp8/encoder/block.h b/vp8/encoder/block.h
index ec316ea81e..e6228ec645 100644
--- a/vp8/encoder/block.h
+++ b/vp8/encoder/block.h
@@ -127,6 +127,7 @@ typedef struct macroblock
     unsigned char need_to_clamp_best_mvs;
 #endif
 
+    int skip_true_count;
     unsigned int coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS];
 
 
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index e3e7d9dfac..d580d89c3c 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -751,7 +751,7 @@ void vp8_encode_frame(VP8_COMP *cpi)
 
     cpi->prediction_error = 0;
     cpi->intra_error = 0;
-    cpi->skip_true_count = 0;
+    cpi->mb.skip_true_count = 0;
     cpi->tok_count = 0;
 
 #if 0
@@ -869,6 +869,8 @@ void vp8_encode_frame(VP8_COMP *cpi)
             {
                 totalrate += cpi->mb_row_ei[i].totalrate;
 
+                cpi->mb.skip_true_count += cpi->mb_row_ei[i].mb.skip_true_count;
+
                 /* add up counts for each thread */
                 sum_coef_counts(x, &cpi->mb_row_ei[i].mb);
             }
@@ -1356,7 +1358,7 @@ int vp8cx_encode_inter_macroblock
 
         if (cpi->common.mb_no_coeff_skip)
         {
-            cpi->skip_true_count ++;
+            x->skip_true_count ++;
             vp8_fix_contexts(xd);
         }
         else
diff --git a/vp8/encoder/ethreading.c b/vp8/encoder/ethreading.c
index fc472486f3..9b7805e50b 100644
--- a/vp8/encoder/ethreading.c
+++ b/vp8/encoder/ethreading.c
@@ -473,6 +473,7 @@ void vp8cx_init_mbrthread_data(VP8_COMP *cpi,
             mbd->fullpixel_mask = 0xfffffff8;
 
         vp8_zero(mb->coef_counts);
+        mb->skip_true_count = 0;
     }
 }
 
diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h
index 72d96b533c..7cea725082 100644
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -518,7 +518,6 @@ typedef struct VP8_COMP
     int lf_zeromv_pct;
     int gf_bad_count;
     int gf_update_recommended;
-    int skip_true_count;
 
     unsigned char *segmentation_map;
     signed char segment_feature_data[MB_LVL_MAX][MAX_MB_SEGMENTS];
diff --git a/vp8/encoder/tokenize.c b/vp8/encoder/tokenize.c
index 90463ef522..3b5268b613 100644
--- a/vp8/encoder/tokenize.c
+++ b/vp8/encoder/tokenize.c
@@ -396,7 +396,7 @@ void vp8_tokenize_mb(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t)
         else
         {
             vp8_fix_contexts(xd);
-            cpi->skip_true_count++;
+            x->skip_true_count++;
         }
 
         return;
-- 
GitLab