#include "third_party/googletest/src/include/gtest/gtest.h"
-extern "C" {
-#include "vp9/encoder/vp9_boolhuff.h"
-#include "vp9/decoder/vp9_dboolhuff.h"
-}
-
-#include "acm_random.h"
+#include "test/acm_random.h"
#include "vpx/vpx_integer.h"
+#include "vpx_dsp/bitreader.h"
+#include "vpx_dsp/bitwriter.h"
using libvpx_test::ACMRandom;
ACMRandom rnd(ACMRandom::DeterministicSeed());
for (int n = 0; n < num_tests; ++n) {
for (int method = 0; method <= 7; ++method) { // we generate various proba
- const int bits_to_test = 1000;
- uint8_t probas[bits_to_test];
+ const int kBitsToTest = 1000;
+ uint8_t probas[kBitsToTest];
- for (int i = 0; i < bits_to_test; ++i) {
+ for (int i = 0; i < kBitsToTest; ++i) {
const int parity = i & 1;
probas[i] =
(method == 0) ? 0 : (method == 1) ? 255 :
}
for (int bit_method = 0; bit_method <= 3; ++bit_method) {
const int random_seed = 6432;
- const int buffer_size = 10000;
+ const int kBufferSize = 10000;
ACMRandom bit_rnd(random_seed);
- BOOL_CODER bw;
- uint8_t bw_buffer[buffer_size];
- vp9_start_encode(&bw, bw_buffer);
+ vpx_writer bw;
+ uint8_t bw_buffer[kBufferSize];
+ vpx_start_encode(&bw, bw_buffer);
int bit = (bit_method == 0) ? 0 : (bit_method == 1) ? 1 : 0;
- for (int i = 0; i < bits_to_test; ++i) {
+ for (int i = 0; i < kBitsToTest; ++i) {
if (bit_method == 2) {
bit = (i & 1);
} else if (bit_method == 3) {
bit = bit_rnd(2);
}
- encode_bool(&bw, bit, static_cast<int>(probas[i]));
+ vpx_write(&bw, bit, static_cast<int>(probas[i]));
}
- vp9_stop_encode(&bw);
+ vpx_stop_encode(&bw);
+
+ // First bit should be zero
+ GTEST_ASSERT_EQ(bw_buffer[0] & 0x80, 0);
- vp9_reader br;
- vp9_reader_init(&br, bw_buffer, buffer_size);
+ vpx_reader br;
+ vpx_reader_init(&br, bw_buffer, kBufferSize, NULL, NULL);
bit_rnd.Reset(random_seed);
- for (int i = 0; i < bits_to_test; ++i) {
+ for (int i = 0; i < kBitsToTest; ++i) {
if (bit_method == 2) {
bit = (i & 1);
} else if (bit_method == 3) {
bit = bit_rnd(2);
}
- GTEST_ASSERT_EQ(vp9_read(&br, probas[i]), bit)
- << "pos: " << i << " / " << bits_to_test
+ GTEST_ASSERT_EQ(vpx_read(&br, probas[i]), bit)
+ << "pos: " << i << " / " << kBitsToTest
<< " bit_method: " << bit_method
<< " method: " << method;
}