98#ifdef KVZ_DEBUG_PRINT_CABAC
100#define WRITE_U(stream, data, bits, name) { printf("%-40s u(%d) : %d\n", name,bits,data); kvz_bitstream_put(stream,data,bits);}
101#define WRITE_UE(stream, data, name) { printf("%-40s ue(v): %d\n", name,data); kvz_bitstream_put_ue(stream,data);}
102#define WRITE_SE(stream, data, name) { printf("%-40s se(v): %d\n", name,data); kvz_bitstream_put_se(stream,(data));}
104#define WRITE_U(stream, data, bits, name) { kvz_bitstream_put(stream,data,bits); }
105#define WRITE_UE(stream, data, name) { kvz_bitstream_put_ue(stream,data); }
106#define WRITE_SE(stream, data, name) { kvz_bitstream_put_se(stream,data); }
uint64_t kvz_bitstream_tell(const bitstream_t *stream)
Get the number of bits written.
Definition: bitstream.c:134
void kvz_bitstream_free_chunks(kvz_data_chunk *chunk)
Free a list of chunks.
Definition: bitstream.c:112
void kvz_bitstream_clear(bitstream_t *stream)
Reset stream.
Definition: bitstream.c:201
void kvz_bitstream_align(bitstream_t *stream)
Align the bitstream, unless it's already aligned.
Definition: bitstream.c:288
void kvz_bitstream_init(bitstream_t *stream)
Initialize a new bitstream.
Definition: bitstream.c:73
void kvz_bitstream_put_ue(bitstream_t *stream, uint32_t data)
Write unsigned Exp-Golomb bit string.
Definition: bitstream.c:253
void kvz_bitstream_finalize(bitstream_t *stream)
Free resources used by a bitstream.
Definition: bitstream.c:124
void kvz_bitstream_put_byte(bitstream_t *const stream, const uint32_t data)
Write a byte to a byte aligned bitstream.
Definition: bitstream.c:212
kvz_data_chunk * kvz_bitstream_alloc_chunk()
Allocates a new bitstream chunk.
Definition: bitstream.c:99
void kvz_bitstream_add_rbsp_trailing_bits(bitstream_t *stream)
Add rbsp_trailing_bits syntax element, which aligns the bitstream.
Definition: bitstream.c:277
struct bitstream_t bitstream_t
A stream of bits.
void kvz_bitstream_writebyte(bitstream_t *stream, uint8_t byte)
Write a byte to bitstream.
Definition: bitstream.c:148
void kvz_bitstream_move(bitstream_t *dst, bitstream_t *src)
Move data from one stream to another.
Definition: bitstream.c:173
void kvz_bitstream_put_se(bitstream_t *stream, int32_t data)
Write signed Exp-Golomb bit string.
Definition: bitstream.c:267
void kvz_bitstream_align_zero(bitstream_t *stream)
Align the bitstream with zero.
Definition: bitstream.c:298
void kvz_bitstream_put(bitstream_t *stream, uint32_t data, uint8_t bits)
Write bits to bitstream Buffers individual bits untill they make a full byte.
Definition: bitstream.c:232
kvz_data_chunk * kvz_bitstream_take_chunks(bitstream_t *stream)
Take chunks from a bitstream.
Definition: bitstream.c:85
Header that is included in every other header.
This file defines the public API of Kvazaar when used as a library.
static kvz_rc_data * data
Definition: rate_control.c:48
Definition: bitstream.h:70
uint32_t value
Definition: bitstream.h:72
uint8_t len
Definition: bitstream.h:71
A stream of bits.
Definition: bitstream.h:50
kvz_data_chunk * first
Pointer to the first chunk, or NULL.
Definition: bitstream.h:55
uint8_t data
The incomplete byte.
Definition: bitstream.h:61
uint32_t len
Total number of complete bytes.
Definition: bitstream.h:52
uint8_t zerocount
Definition: bitstream.h:66
uint8_t cur_bit
Number of bits in the incomplete byte.
Definition: bitstream.h:64
kvz_data_chunk * last
Pointer to the last chunk, or NULL.
Definition: bitstream.h:58
A linked list of chunks of data.
Definition: kvazaar.h:653