Use aom_reader with pvq_decode_partition().

Change the pvq_decode_partition() function to take an aom_reader struct
 instead of an od_ec_dec struct.

Change-Id: I7247aaa0be3eedd336371ba677dc2d9f16f27d20
diff --git a/av1/decoder/pvq_decoder.c b/av1/decoder/pvq_decoder.c
index df6ae16..b5c5543 100644
--- a/av1/decoder/pvq_decoder.c
+++ b/av1/decoder/pvq_decoder.c
@@ -18,6 +18,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include "./aom_config.h"
+#include "aom_dsp/bitreader.h"
 #include "aom_dsp/entcode.h"
 #include "aom_dsp/entdec.h"
 #include "av1/common/odintrin.h"
@@ -110,7 +111,7 @@
  * @param [in]     qm      QM with magnitude compensation
  * @param [in]     qm_inv  Inverse of QM with magnitude compensation
  */
-static void pvq_decode_partition(od_ec_dec *ec,
+static void pvq_decode_partition(aom_reader *r,
                                  int q0,
                                  int n,
                                  generic_encoder model[3],
@@ -168,9 +169,13 @@
     /* Jointly decode gain, itheta and noref for small values. Then we handle
        larger gain. We need to wait for itheta because in the !nodesync case
        it depends on max_theta, which depends on the gain. */
-    id = od_decode_cdf_adapt(ec, &adapt->pvq.pvq_gaintheta_cdf[cdf_ctx][0],
+#if CONFIG_DAALA_EC
+    id = od_decode_cdf_adapt(&r->ec, &adapt->pvq.pvq_gaintheta_cdf[cdf_ctx][0],
      8 + 7*has_skip, adapt->pvq.pvq_gaintheta_increment,
      "pvq:gaintheta");
+#else
+# error "CONFIG_PVQ currently requires CONFIG_DAALA_EC."
+#endif
     if (!is_keyframe && id >= 10) id++;
     if (is_keyframe && id >= 8) id++;
     if (id >= 8) {
@@ -184,7 +189,7 @@
   /* The CfL flip bit is only decoded on the first band that has noref=0. */
   if (cfl->allow_flip && !*noref) {
     int flip;
-    flip = od_ec_dec_bits(ec, 1, "cfl:flip");
+    flip = aom_read_bit(r, "cfl:flip");
     if (flip) {
       for (i = 0; i < cfl->nb_coeffs; i++) cfl->ref[i] = -cfl->ref[i];
     }
@@ -193,7 +198,11 @@
   if (qg > 0) {
     int tmp;
     tmp = *exg;
-    qg = 1 + generic_decode(ec, &model[!*noref], -1, &tmp, 2, "pvq:gain");
+#if CONFIG_DAALA_EC
+    qg = 1 + generic_decode(&r->ec, &model[!*noref], -1, &tmp, 2, "pvq:gain");
+#else
+# error "CONFIG_PVQ currently requires CONFIG_DAALA_EC."
+#endif
     OD_IIR_DIADIC(*exg, qg << 16, 2);
   }
   *skip = 0;
@@ -239,8 +248,12 @@
     if (itheta > 1 && (nodesync || max_theta > 3)) {
       int tmp;
       tmp = *ext;
-      itheta = 2 + generic_decode(ec, &model[2], nodesync ? -1 : max_theta - 3,
-       &tmp, 2, "pvq:theta");
+#if CONFIG_DAALA_EC
+      itheta = 2 + generic_decode(&r->ec, &model[2],
+       nodesync ? -1 : max_theta - 3, &tmp, 2, "pvq:theta");
+#else
+# error "CONFIG_PVQ currently requires CONFIG_DAALA_EC."
+#endif
       OD_IIR_DIADIC(*ext, itheta << 16, 2);
     }
     theta = od_pvq_compute_theta(itheta, max_theta);
@@ -255,8 +268,12 @@
   k = od_pvq_compute_k(qcg, itheta, theta, *noref, n, beta, nodesync);
   if (k != 0) {
     /* when noref==0, y is actually size n-1 */
-    od_decode_pvq_codeword(ec, &adapt->pvq.pvq_codeword_ctx, y, n - !*noref,
-     k);
+#if CONFIG_DAALA_EC
+    od_decode_pvq_codeword(&r->ec, &adapt->pvq.pvq_codeword_ctx, y,
+     n - !*noref, k);
+#else
+# error "CONFIG_PVQ currently requires CONFIG_DAALA_EC."
+#endif
   }
   else {
     OD_CLEAR(y, n);
@@ -354,16 +371,12 @@
       else
         q = OD_MAXI(1, q0);
 
-#if CONFIG_DAALA_EC
-      pvq_decode_partition(&dec->r->ec, q, size[i],
+      pvq_decode_partition(dec->r, q, size[i],
        model, &dec->state.adapt, exg + i, ext + i, ref + off[i], out + off[i],
        &noref[i], beta[i], robust, is_keyframe, pli,
        (pli != 0)*OD_TXSIZES*PVQ_MAX_PARTITIONS + bs*PVQ_MAX_PARTITIONS + i,
        &cfl, i == 0 && (i < nb_bands - 1), skip_rest, i, &skip[i],
        qm + off[i], qm_inv + off[i]);
-#else
-#error "CONFIG_PVQ currently requires CONFIG_DAALA_EC."
-#endif
       if (i == 0 && !skip_rest[0] && bs > 0) {
         int skip_dir;
         int j;