Created by the British Broadcasting Corporation.
Class ByteIO - top-level class for reading/writing bytes to a stream.
#include <byteio.h>
Public Member Functions | |
ByteIO (bool new_stream=true) | |
Default constructor. More... | |
ByteIO (const ByteIO &stream_data) | |
Constructor. More... | |
virtual | ~ByteIO () |
Destructor. More... | |
virtual void | CollateByteStats (DiracByteStats &dirac_byte_stats) |
Gathers byte-stream statistics. More... | |
virtual const std::string | GetBytes () |
Get bytes in Dirac-bytestream format. More... | |
int | GetReadBytePosition () const |
Get position of read stream pointer. More... | |
virtual int | GetSize () const |
Gets size (in bytes) More... | |
void | SetByteParams (const ByteIO &byte_io) |
Copies stream source/destination info. More... | |
void | ByteAlignOutput () |
Sync input for byte-alignment. More... | |
void | WriteUint (unsigned int value) |
Ouputs an unsigned integer in interleaved exp Golomb format. More... | |
void | SetBitsLeft (int left_bits) |
Sets input size in bits. More... | |
int | BitsLeft (void) |
Sets input size in bits. More... | |
Protected Member Functions | |
bool | CanRead () const |
bool | GetBit (unsigned char &c, int pos) const |
void | SetBit (unsigned char &c, int pos) const |
void | SetBits (unsigned char &c, unsigned char bits) const |
void | ByteAlignInput () |
Sync input for byte-alignment. More... | |
bool | ReadBool () |
Reads boolean value. More... | |
bool | ReadBoolB () |
Reads boolean value - bounded i/o. More... | |
int | ReadBit () |
Reads next bit. More... | |
int | ReadBitB () |
Reads next bit - bounded i/o. More... | |
unsigned int | ReadNBits (int count) |
Reads next 'count' bits. More... | |
void | InputBytes (char *data, int count) |
Reads from stream. More... | |
void | FlushInputB () |
Flushes the bounde input. More... | |
int | ReadSint () |
Reads a signed integer in interleaved exp-Golomb format return Signed integer read. More... | |
int | ReadSintB () |
Reads a signed integer in interleaved exp-Golomb format from bounded input return Signed integer read. More... | |
unsigned int | ReadUint () |
Reads an unsigned integer in interleaved exp Golomb format. More... | |
unsigned int | ReadUintB () |
Reads an unsigned integer in interleaved exp Golomb format from bounded input. More... | |
unsigned int | ReadUintLit (const int byte_size) |
Reads a fixed length unsigned integer from the stream in big endian. More... | |
unsigned char | InputUnByte () |
Reads a byte from the stream. More... | |
std::string | InputUnString (const int count) |
Reads a series of bytes from a stream. More... | |
void | WriteBit (const bool &bit) |
Outputs a bit. More... | |
int | WriteNBits (unsigned int val) |
Outputs an unsigned integer. More... | |
void | WriteNBits (unsigned int val, int count) |
Outputs an n bit integer. More... | |
void | OutputBytes (const std::string &bytes) |
Outputs a series of bytes. More... | |
void | OutputCurrentByte () |
Outputs current byte contents. More... | |
void | WriteSint (int val) |
Outputs an integer in Golomb signed integer format. More... | |
void | WriteUintLit (const unsigned int &value, const int &length) |
Output unsigned int value in big endian format. More... | |
void | RemoveRedundantBytes (const int count) |
Removes portion of byte-stream no longer required. More... | |
void | SeekGet (const int offset, std::ios_base::seekdir dir) |
Protected Attributes | |
std::stringstream * | mp_stream |
Input/output steam. More... | |
Private Attributes | |
unsigned char | m_current_byte |
Char used for temporary storage of op data bits. More... | |
int | m_current_pos |
Used to set individual bit within the current header byte. More... | |
int | m_num_bytes |
Number of bytes processed. More... | |
bool | m_new_stream |
stream alloc flag More... | |
int | m_bits_left |
num bits left to read More... | |
Friends | |
class | ArithCodecBase |
ArithCodec can see internals for getting/setting bits. More... | |
class | ArithCodecToVLCAdapter |
VLC entropy coder can see internals for getting/setting bits. More... | |
dirac::ByteIO::ByteIO | ( | bool | new_stream = true | ) |
new_stream | Has Creates & owns data buffer |
dirac::ByteIO::ByteIO | ( | const ByteIO & | stream_data | ) |
stream_data | Copies data buffer details |
|
virtual |
|
inline |
Read is limited by this
References m_bits_left.
|
protected |
void dirac::ByteIO::ByteAlignOutput | ( | ) |
|
inlineprotected |
References mp_stream.
|
inlinevirtual |
dirac_byte_stats | Collates byte information |
Reimplemented in dirac::ComponentByteIO, dirac::EndOfSequenceByteIO, dirac::MvDataByteIO, dirac::ParseUnitByteIO, dirac::PictureByteIO, and dirac::TransformByteIO.
References dirac::DiracByteStats::Clear().
|
protected |
|
inlineprotected |
References BIT_IN_CHAR.
|
virtual |
|
inline |
References mp_stream.
|
virtual |
|
inlineprotected |
data | Start of char buffer |
count | Number of bytes to read |
References mp_stream.
|
inlineprotected |
References m_num_bytes, and mp_stream.
Referenced by InputUnString().
|
inlineprotected |
References InputUnByte().
|
inlineprotected |
References m_num_bytes, and mp_stream.
|
inlineprotected |
References m_current_byte, m_current_pos, m_num_bytes, and mp_stream.
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by dirac::ArithCodecToVLCAdapter::DecodeSymbol().
|
protected |
count | number of bits to be read |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineprotected |
byte_size | Number of bytes in fixed length integer |
References m_num_bytes, and mp_stream.
|
protected |
count | Number of bytes to be removed from beginning of stream |
|
inlineprotected |
References mp_stream.
|
inlineprotected |
References BIT_IN_CHAR.
|
inlineprotected |
|
inline |
Read is limited by this
References m_bits_left.
void dirac::ByteIO::SetByteParams | ( | const ByteIO & | byte_io | ) |
byte_io | Byte source/destination |
|
protected |
bit | 1/0 Output |
Referenced by dirac::ArithCodecToVLCAdapter::EncodeSymbol(), and dirac::ArithCodecBase::EncodeSymbol().
|
protected |
val | Integer to be output |
|
protected |
val | Unsigned Integer to be output |
count | number of bits to be written |
|
protected |
val | Integer to be output |
void dirac::ByteIO::WriteUint | ( | unsigned int | value | ) |
value | Integer to be output |
|
inlineprotected |
value | Integer to be output |
length | number of bytes in val to output |
References m_num_bytes, and mp_stream.
|
friend |
|
friend |
|
private |
Referenced by BitsLeft(), and SetBitsLeft().
|
private |
Referenced by OutputCurrentByte().
|
private |
Referenced by OutputCurrentByte().
|
private |
|
private |
Referenced by InputUnByte(), OutputBytes(), OutputCurrentByte(), ReadUintLit(), and WriteUintLit().
|
protected |
Referenced by CanRead(), GetReadBytePosition(), InputBytes(), InputUnByte(), OutputBytes(), OutputCurrentByte(), ReadUintLit(), SeekGet(), and WriteUintLit().
© 2004 British Broadcasting Corporation.
Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's
excellent Doxygen tool.