Lines Matching refs:br

23 void VP8InitBitReader(VP8BitReader* const br,
25 assert(br != NULL);
28 br->range_ = 255 - 1;
29 br->buf_ = start;
30 br->buf_end_ = end;
31 br->value_ = 0;
32 br->bits_ = -8; // to load the very first 8bits
33 br->eof_ = 0;
34 VP8LoadNewBytes(br);
37 void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) {
38 if (br->buf_ != NULL) {
39 br->buf_ += offset;
40 br->buf_end_ += offset;
76 void VP8LoadFinalBytes(VP8BitReader* const br) {
77 assert(br != NULL && br->buf_ != NULL);
79 if (br->buf_ < br->buf_end_) {
80 br->bits_ += 8;
81 br->value_ = (bit_t)(*br->buf_++) | (br->value_ << 8);
82 } else if (!br->eof_) {
83 br->value_ <<= 8;
84 br->bits_ += 8;
85 br->eof_ = 1;
92 uint32_t VP8GetValue(VP8BitReader* const br, int bits) {
95 v |= VP8GetBit(br, 0x80) << bits;
100 int32_t VP8GetSignedValue(VP8BitReader* const br, int bits) {
101 const int value = VP8GetValue(br, bits);
102 return VP8Get(br) ? -value : value;
129 void VP8LInitBitReader(VP8LBitReader* const br, const uint8_t* const start,
133 assert(br != NULL);
137 br->len_ = length;
138 br->val_ = 0;
139 br->bit_pos_ = 0;
140 br->eos_ = 0;
141 br->error_ = 0;
143 if (length > sizeof(br->val_)) {
144 length = sizeof(br->val_);
149 br->val_ = value;
150 br->pos_ = length;
151 br->buf_ = start;
154 // Special version that assumes br->pos_ <= br_len_.
155 static int IsEndOfStreamSpecial(const VP8LBitReader* const br) {
156 assert(br->pos_ <= br->len_);
157 return br->pos_ == br->len_ && br->bit_pos_ >= LBITS;
160 static int IsEndOfStream(const VP8LBitReader* const br) {
161 return (br->pos_ > br->len_) || IsEndOfStreamSpecial(br);
164 void VP8LBitReaderSetBuffer(VP8LBitReader* const br,
166 assert(br != NULL);
169 br->buf_ = buf;
170 br->len_ = len;
171 br->eos_ = IsEndOfStream(br);
175 static void ShiftBytes(VP8LBitReader* const br) {
176 while (br->bit_pos_ >= 8 && br->pos_ < br->len_) {
177 br->val_ >>= 8;
178 br->val_ |= ((vp8l_val_t)br->buf_[br->pos_]) << (LBITS - 8);
179 ++br->pos_;
180 br->bit_pos_ -= 8;
184 void VP8LFillBitWindow(VP8LBitReader* const br) {
185 if (br->bit_pos_ >= WBITS) {
189 if (br->pos_ + sizeof(br->val_) < br->len_) {
190 br->val_ >>= WBITS;
191 br->bit_pos_ -= WBITS;
194 br->val_ |= (vp8l_val_t)*(const uint32_t*)(br->buf_ + br->pos_) <<
196 br->pos_ += LOG8_WBITS;
200 ShiftBytes(br); // Slow path.
201 br->eos_ = IsEndOfStreamSpecial(br);
205 uint32_t VP8LReadBits(VP8LBitReader* const br, int n_bits) {
208 if (!br->eos_ && n_bits <= VP8L_MAX_NUM_BIT_READ) {
210 (uint32_t)(br->val_ >> br->bit_pos_) & kBitMask[n_bits];
211 const int new_bits = br->bit_pos_ + n_bits;
212 br->bit_pos_ = new_bits;
214 br->eos_ = IsEndOfStreamSpecial(br);
215 ShiftBytes(br);
218 br->error_ = 1;