9#if __has_include("defs.h")
19 bitstream (std::iostream& str,
unsigned int pack);
26 int mread (
unsigned int sz,
bool is_signed =
false);
29 void mwrite (
int val,
unsigned int sz);
32 const unsigned int packing;
36 virtual void encode (
unsigned char bits,
char& chr);
39 virtual void decode (
unsigned char& bits,
char chr);
53 chr = (bits & (1 << packing) - 1);
63 bits = (chr & (1 << packing) - 1);
int mread(unsigned int sz, bool is_signed=false)
Read a variable number of bits.
Definition bitstream.cpp:121
bitstream(std::iostream &str, unsigned int pack)
Definition bitstream.cpp:26
void write(int val)
Write a bit to stream.
Definition bitstream.cpp:64
virtual void decode(unsigned char &bits, char chr)
Decode bit field from a byte.
Definition bitstream.h:61
virtual void encode(unsigned char bits, char &chr)
Encode bit field in a byte.
Definition bitstream.h:51
void mwrite(int val, unsigned int sz)
Write a variable number of bits.
Definition bitstream.cpp:103
void flush()
If there are any leftover bits, encode them in one character and write them out to stream.
Definition bitstream.cpp:84
bool read()
Read the next bit.
Definition bitstream.cpp:41