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.