Change get_txb_skip_context to get_txb_ctx

Generate txb_ctx which contains both txb_skip_ctx and dc_ctx
directly

Change-Id: I5058b72e0b6431a9daf0536925c71da590cf7aeb
diff --git a/av1/common/txb_common.h b/av1/common/txb_common.h
index 585f736..03b2022 100644
--- a/av1/common/txb_common.h
+++ b/av1/common/txb_common.h
@@ -318,33 +318,34 @@
   return dc_sign_ctx;
 }
 
-static INLINE int get_txb_skip_context(BLOCK_SIZE bsize, TX_SIZE tx_size,
-                                       int plane, const ENTROPY_CONTEXT *a,
-                                       const ENTROPY_CONTEXT *l, int *dc_sign) {
+static INLINE void get_txb_ctx(BLOCK_SIZE bsize, TX_SIZE tx_size, int plane,
+                               const ENTROPY_CONTEXT *a,
+                               const ENTROPY_CONTEXT *l, TXB_CTX *txb_ctx) {
   const int tx_size_in_blocks = 1 << tx_size;
   int ctx_offset = (plane == 0) ? 0 : 7;
   int k;
 
   if (bsize > txsize_to_bsize[tx_size]) ctx_offset += 3;
 
-  *dc_sign = 0;
+  int dc_sign = 0;
   for (k = 0; k < tx_size_in_blocks; ++k) {
     int sign = a[k] >> COEFF_CONTEXT_BITS;
     if (sign == 1)
-      --*dc_sign;
+      --dc_sign;
     else if (sign == 2)
-      ++*dc_sign;
+      ++dc_sign;
     else if (sign != 0)
       exit(0);
 
     sign = l[k] >> 6;
     if (sign == 1)
-      --*dc_sign;
+      --dc_sign;
     else if (sign == 2)
-      ++*dc_sign;
+      ++dc_sign;
     else if (sign != 0)
       exit(0);
   }
+  txb_ctx->dc_sign_ctx = get_dc_sign_ctx(dc_sign);
 
   if (plane == 0) {
     int top = 0;
@@ -357,20 +358,20 @@
     left = AOMMIN(left, 255);
 
     if (bsize == txsize_to_bsize[tx_size])
-      return 0;
+      txb_ctx->txb_skip_ctx = 0;
     else if (top == 0 && left == 0)
-      return 1;
+      txb_ctx->txb_skip_ctx = 1;
     else if (top == 0 || left == 0)
-      return 2 + (AOMMAX(top, left) > 3);
+      txb_ctx->txb_skip_ctx = 2 + (AOMMAX(top, left) > 3);
     else if (AOMMAX(top, left) <= 3)
-      return 4;
+      txb_ctx->txb_skip_ctx = 4;
     else if (AOMMIN(top, left) <= 3)
-      return 5;
+      txb_ctx->txb_skip_ctx = 5;
     else
-      return 6;
+      txb_ctx->txb_skip_ctx = 6;
   } else {
     int ctx_base = get_entropy_context(tx_size, a, l);
-    return ctx_offset + ctx_base;
+    txb_ctx->txb_skip_ctx = ctx_offset + ctx_base;
   }
 }
 #endif  // AV1_COMMON_TXB_COMMON_H_
diff --git a/av1/encoder/encodetxb.c b/av1/encoder/encodetxb.c
index 5a6455d..d83cb26 100644
--- a/av1/encoder/encodetxb.c
+++ b/av1/encoder/encodetxb.c
@@ -435,10 +435,9 @@
   const uint8_t *const band = get_band_translate(tx_size);
   const int seg_eob = get_tx_eob(&cpi->common.seg, segment_id, tx_size);
   int c, i;
-  int dc_sign;
-  int txb_skip_ctx = get_txb_skip_context(plane_bsize, tx_size, plane,
-                                          pd->above_context + blk_col,
-                                          pd->left_context + blk_row, &dc_sign);
+  TXB_CTX txb_ctx;
+  get_txb_ctx(plane_bsize, tx_size, plane, pd->above_context + blk_col,
+              pd->left_context + blk_row, &txb_ctx);
   const int bwl = b_width_log2_lookup[txsize_to_bsize[tx_size]] + 2;
   int cul_level = 0;
   unsigned int(*nz_map_count)[SIG_COEF_CONTEXTS][2];
@@ -455,8 +454,8 @@
   (void)counts;
   (void)band;
 
-  ++td->counts->txb_skip[tx_size][txb_skip_ctx][eob == 0];
-  x->mbmi_ext->txb_skip_ctx[plane][block] = txb_skip_ctx;
+  ++td->counts->txb_skip[tx_size][txb_ctx.txb_skip_ctx][eob == 0];
+  x->mbmi_ext->txb_skip_ctx[plane][block] = txb_ctx.txb_skip_ctx;
 
   x->mbmi_ext->eobs[plane][block] = eob;
 
@@ -498,7 +497,7 @@
       if (level == i + 1) {
         ++td->counts->coeff_base[tx_size][plane_type][i][ctx][1];
         if (c == 0) {
-          int dc_sign_ctx = get_dc_sign_ctx(dc_sign);
+          int dc_sign_ctx = txb_ctx.dc_sign_ctx;
 
           ++td->counts->dc_sign[plane_type][dc_sign_ctx][v < 0];
           x->mbmi_ext->dc_sign_ctx[plane][block] = dc_sign_ctx;
@@ -521,7 +520,7 @@
 
     cul_level += level;
     if (c == 0) {
-      int dc_sign_ctx = get_dc_sign_ctx(dc_sign);
+      int dc_sign_ctx = txb_ctx.dc_sign_ctx;
 
       ++td->counts->dc_sign[plane_type][dc_sign_ctx][v < 0];
       x->mbmi_ext->dc_sign_ctx[plane][block] = dc_sign_ctx;