aboutsummaryrefslogtreecommitdiff
path: root/libvpx/vp9/decoder/vp9_reader.h
diff options
context:
space:
mode:
Diffstat (limited to 'libvpx/vp9/decoder/vp9_reader.h')
-rw-r--r--libvpx/vp9/decoder/vp9_reader.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/libvpx/vp9/decoder/vp9_reader.h b/libvpx/vp9/decoder/vp9_reader.h
index 8fe6acbc2..2d9eccfbf 100644
--- a/libvpx/vp9/decoder/vp9_reader.h
+++ b/libvpx/vp9/decoder/vp9_reader.h
@@ -16,6 +16,7 @@
#include "./vpx_config.h"
#include "vpx_ports/mem.h"
+#include "vpx/vp8dx.h"
#include "vpx/vpx_integer.h"
#include "vp9/common/vp9_prob.h"
@@ -31,12 +32,19 @@ typedef size_t BD_VALUE;
typedef struct {
const uint8_t *buffer_end;
const uint8_t *buffer;
+ uint8_t clear_buffer[sizeof(BD_VALUE) + 1];
BD_VALUE value;
int count;
unsigned int range;
+ vpx_decrypt_cb decrypt_cb;
+ void *decrypt_state;
} vp9_reader;
-int vp9_reader_init(vp9_reader *r, const uint8_t *buffer, size_t size);
+int vp9_reader_init(vp9_reader *r,
+ const uint8_t *buffer,
+ size_t size,
+ vpx_decrypt_cb decrypt_cb,
+ void *decrypt_state);
void vp9_reader_fill(vp9_reader *r);
@@ -44,7 +52,7 @@ int vp9_reader_has_error(vp9_reader *r);
const uint8_t *vp9_reader_find_end(vp9_reader *r);
-static int vp9_read(vp9_reader *r, int prob) {
+static INLINE int vp9_read(vp9_reader *r, int prob) {
unsigned int bit = 0;
BD_VALUE value;
BD_VALUE bigsplit;
@@ -81,11 +89,11 @@ static int vp9_read(vp9_reader *r, int prob) {
return bit;
}
-static int vp9_read_bit(vp9_reader *r) {
+static INLINE int vp9_read_bit(vp9_reader *r) {
return vp9_read(r, 128); // vp9_prob_half
}
-static int vp9_read_literal(vp9_reader *r, int bits) {
+static INLINE int vp9_read_literal(vp9_reader *r, int bits) {
int literal = 0, bit;
for (bit = bits - 1; bit >= 0; bit--)
@@ -94,8 +102,8 @@ static int vp9_read_literal(vp9_reader *r, int bits) {
return literal;
}
-static int vp9_read_tree(vp9_reader *r, const vp9_tree_index *tree,
- const vp9_prob *probs) {
+static INLINE int vp9_read_tree(vp9_reader *r, const vp9_tree_index *tree,
+ const vp9_prob *probs) {
vp9_tree_index i = 0;
while ((i = tree[i + vp9_read(r, probs[i >> 1])]) > 0)