diff --git a/aom_dsp/bitreader_buffer.c b/aom_dsp/bitreader_buffer.c
index bf88119..cf505e8 100644
--- a/aom_dsp/bitreader_buffer.c
+++ b/aom_dsp/bitreader_buffer.c
@@ -7,14 +7,14 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "./vpx_config.h"
+#include "./aom_config.h"
 #include "./bitreader_buffer.h"
 
-size_t vpx_rb_bytes_read(struct vpx_read_bit_buffer *rb) {
+size_t aom_rb_bytes_read(struct aom_read_bit_buffer *rb) {
   return (rb->bit_offset + 7) >> 3;
 }
 
-int vpx_rb_read_bit(struct vpx_read_bit_buffer *rb) {
+int aom_rb_read_bit(struct aom_read_bit_buffer *rb) {
   const size_t off = rb->bit_offset;
   const size_t p = off >> 3;
   const int q = 7 - (int)(off & 0x7);
@@ -28,19 +28,19 @@
   }
 }
 
-int vpx_rb_read_literal(struct vpx_read_bit_buffer *rb, int bits) {
+int aom_rb_read_literal(struct aom_read_bit_buffer *rb, int bits) {
   int value = 0, bit;
-  for (bit = bits - 1; bit >= 0; bit--) value |= vpx_rb_read_bit(rb) << bit;
+  for (bit = bits - 1; bit >= 0; bit--) value |= aom_rb_read_bit(rb) << bit;
   return value;
 }
 
-int vpx_rb_read_signed_literal(struct vpx_read_bit_buffer *rb, int bits) {
-  const int value = vpx_rb_read_literal(rb, bits);
-  return vpx_rb_read_bit(rb) ? -value : value;
+int aom_rb_read_signed_literal(struct aom_read_bit_buffer *rb, int bits) {
+  const int value = aom_rb_read_literal(rb, bits);
+  return aom_rb_read_bit(rb) ? -value : value;
 }
 
-int vpx_rb_read_inv_signed_literal(struct vpx_read_bit_buffer *rb, int bits) {
+int aom_rb_read_inv_signed_literal(struct aom_read_bit_buffer *rb, int bits) {
   const int nbits = sizeof(unsigned) * 8 - bits - 1;
-  const unsigned value = (unsigned)vpx_rb_read_literal(rb, bits + 1) << nbits;
+  const unsigned value = (unsigned)aom_rb_read_literal(rb, bits + 1) << nbits;
   return ((int)value) >> nbits;
 }
