Add a runtime flag to enable bit accounting.

By default, when building with --enable-accounting the bit accounting
 code will collect statistics for every frame while decoding.
Collecting statistics can slow down decode time and we would eventually
 like to enable the CONFIG_ACCOUNTING flag by default.
This patch adds a runtime flag so that bit accounting statistics are
 only collected when actually needed.

Change-Id: I25d9eaf26ea132d61ace95b952872158c9ac29e7
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index c701557..2e0887e 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -1341,7 +1341,9 @@
     pbi->total_tiles = tile_rows * tile_cols;
   }
 #if CONFIG_ACCOUNTING
-  aom_accounting_reset(&pbi->accounting);
+  if (pbi->acct_enabled) {
+    aom_accounting_reset(&pbi->accounting);
+  }
 #endif
   // Load all tile information into tile_data.
   for (tile_row = 0; tile_row < tile_rows; ++tile_row) {
@@ -1361,7 +1363,11 @@
                           &tile_data->bit_reader, pbi->decrypt_cb,
                           pbi->decrypt_state);
 #if CONFIG_ACCOUNTING
-      tile_data->bit_reader.accounting = &pbi->accounting;
+      if (pbi->acct_enabled) {
+        tile_data->bit_reader.accounting = &pbi->accounting;
+      } else {
+        tile_data->bit_reader.accounting = NULL;
+      }
 #endif
       av1_init_macroblockd(cm, &tile_data->xd, tile_data->dqcoeff);
 #if CONFIG_PALETTE
@@ -1381,8 +1387,10 @@
             pbi->inv_tile_order ? tile_cols - tile_col - 1 : tile_col;
         tile_data = pbi->tile_data + tile_cols * tile_row + col;
 #if CONFIG_ACCOUNTING
-        tile_data->bit_reader.accounting->last_tell_frac =
-            aom_reader_tell_frac(&tile_data->bit_reader);
+        if (pbi->acct_enabled) {
+          tile_data->bit_reader.accounting->last_tell_frac =
+              aom_reader_tell_frac(&tile_data->bit_reader);
+        }
 #endif
         av1_tile_set_col(&tile, tile_data->cm, col);
         av1_zero(tile_data->xd.left_context);
diff --git a/av1/decoder/decoder.c b/av1/decoder/decoder.c
index e536169..fa2d061 100644
--- a/av1/decoder/decoder.c
+++ b/av1/decoder/decoder.c
@@ -127,6 +127,7 @@
   aom_qm_init(cm);
 #endif
 #if CONFIG_ACCOUNTING
+  pbi->acct_enabled = 1;
   aom_accounting_init(&pbi->accounting);
 #endif
   cm->error.setjmp = 0;
diff --git a/av1/decoder/decoder.h b/av1/decoder/decoder.h
index 3f8ffdf..d19909e 100644
--- a/av1/decoder/decoder.h
+++ b/av1/decoder/decoder.h
@@ -88,6 +88,7 @@
   int need_resync;   // wait for key/intra-only frame.
   int hold_ref_buf;  // hold the reference buffer.
 #if CONFIG_ACCOUNTING
+  int acct_enabled;
   Accounting accounting;
 #endif
   size_t uncomp_hdr_size;       // Size of the uncompressed header