9 #ifndef BROTLI_DEC_BIT_READER_H_ 10 #define BROTLI_DEC_BIT_READER_H_ 17 #if defined(__cplusplus) || defined(c_plusplus) 22 #define BROTLI_SHORT_FILL_BIT_WINDOW_READ 4 25 #define BROTLI_SHORT_FILL_BIT_WINDOW_READ 2 29 static const uint32_t kBitMask[33] = { 0x0000,
30 0x00000001, 0x00000003, 0x00000007, 0x0000000F,
31 0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF,
32 0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF,
33 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF,
34 0x0001FFFF, 0x0003FFFF, 0x0007FFFF, 0x000FFFFF,
35 0x001FFFFF, 0x003FFFFF, 0x007FFFFF, 0x00FFFFFF,
36 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF,
37 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF
44 return ~((0xffffffff
U) << n);
97 return br->
avail_in + (BrotliGetAvailableBits(br) >> 3);
112 return (
uint16_t)(((value & 0xFF
U) << 8) | ((value & 0xFF00
U) >> 8));
114 return (
uint16_t)(in[0] | (in[1] << 8));
123 return ((value & 0xFFU) << 24) | ((value & 0xFF00U) << 8) |
124 ((value & 0xFF0000U) >> 8) | ((value & 0xFF000000U) >> 24);
141 ((value & 0xFFU) << 56) |
142 ((value & 0xFF00U) << 40) |
143 ((value & 0xFF0000U) << 24) |
144 ((value & 0xFF000000U) << 8) |
145 ((value & 0xFF00000000U) >> 8) |
146 ((value & 0xFF0000000000U) >> 24) |
147 ((value & 0xFF000000000000U) >> 40) |
148 ((value & 0xFF00000000000000U) >> 56);
219 BrotliFillBitWindow(br, 17);
249 BrotliFillBitWindow(br, 16);
250 return (
uint32_t)BrotliGetBitsUnmasked(br);
256 BrotliFillBitWindow(br, n_bits);
257 return (
uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);
264 while (BrotliGetAvailableBits(br) < n_bits) {
265 if (!BrotliPullByte(br)) {
269 *val = (
uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);
280 uint32_t unused_bytes = BrotliGetAvailableBits(br) >> 3;
281 uint32_t unused_bits = unused_bytes << 3;
284 if (unused_bits ==
sizeof(br->
val_) << 3) {
287 br->
val_ <<= unused_bits;
296 *val = (
uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);
297 BROTLI_LOG((
"[BrotliReadBits] %d %d %d val: %6x\n",
299 BrotliDropBits(br, n_bits);
308 BrotliFillBitWindow(br, n_bits);
309 BrotliTakeBits(br, n_bits, &val);
314 BrotliFillBitWindow(br, 16);
315 BrotliTakeBits(br, 16, &low_val);
316 BrotliFillBitWindow(br, 8);
317 BrotliTakeBits(br, n_bits - 16, &high_val);
318 return low_val | (high_val << 16);
326 while (BrotliGetAvailableBits(br) < n_bits) {
327 if (!BrotliPullByte(br)) {
331 BrotliTakeBits(br, n_bits, val);
338 uint32_t pad_bits_count = BrotliGetAvailableBits(br) & 0x7;
340 if (pad_bits_count != 0) {
341 BrotliTakeBits(br, pad_bits_count, &pad_bits);
343 return pad_bits == 0;
350 uint32_t available_bits = BrotliGetAvailableBits(br);
351 size_t bytes_left = available_bits >> 3;
353 if (offset < bytes_left) {
354 return (BrotliGetBitsUnmasked(br) >> (
unsigned)(offset << 3)) & 0xFF;
356 offset -= bytes_left;
368 while (BrotliGetAvailableBits(br) >= 8 && num > 0) {
369 *dest = (
uint8_t)BrotliGetBitsUnmasked(br);
370 BrotliDropBits(br, 8);
374 memcpy(dest, br->
next_in, num);
379 #if defined(__cplusplus) || defined(c_plusplus) reg_t val_
Definition: bit_reader.h:51
size_t avail_in
Definition: bit_reader.h:61
unsigned long long uint64_t
Definition: ptypes.h:120
#define BROTLI_INTERNAL
Definition: port.h:146
const uint8_t * next_in
Definition: bit_reader.h:60
#define BROTLI_INLINE
Definition: port.h:152
const uint8_t * next_in
Definition: bit_reader.h:53
unsigned int uint32_t
Definition: ptypes.h:105
unsigned char uint8_t
Definition: skin_detection.h:18
BROTLI_INTERNAL int BrotliWarmupBitReader(BrotliBitReader *const br)
Definition: bit_reader.c:23
double U(int64_t x, double alpha)
Definition: metric_recorder.cc:414
dest
Definition: upload.py:394
#define BROTLI_64_BITS
Definition: port.h:186
std::integral_constant< std::uint32_t, V > uint32_t
Definition: Brigand.h:441
std::integral_constant< std::uint64_t, V > uint64_t
Definition: Brigand.h:445
#define BROTLI_HAS_UBFX
Definition: port.h:240
#define BROTLI_LITTLE_ENDIAN
Definition: port.h:211
EGLStreamKHR EGLint n
Definition: eglext.h:984
EGLStreamKHR EGLint EGLint offset
Definition: eglext.h:984
Definition: bit_reader.h:57
EGLAttrib * value
Definition: eglext.h:120
unsigned char uint8_t
Definition: ptypes.h:89
unsigned short uint16_t
Definition: ptypes.h:97
#define BROTLI_DCHECK(x)
Definition: port.h:164
uint32_t bit_pos_
Definition: bit_reader.h:52
Definition: bit_reader.h:50
#define BROTLI_SHORT_FILL_BIT_WINDOW_READ
Definition: bit_reader.h:25
#define BROTLI_LOG(x)
Definition: port.h:165
uint32_t bit_pos_
Definition: bit_reader.h:59
#define BROTLI_ALIGNED_READ
Definition: port.h:96
#define IS_CONSTANT(x)
Definition: port.h:128
#define BROTLI_BIG_ENDIAN
Definition: port.h:209
size_t avail_in
Definition: bit_reader.h:54
BROTLI_INTERNAL void BrotliInitBitReader(BrotliBitReader *const br)
Definition: bit_reader.c:18
uint32_t reg_t
Definition: bit_reader.h:26
GLuint GLsizei GLsizei GLfloat * val
Definition: gl2ext.h:3301
reg_t val_
Definition: bit_reader.h:58