Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::ParseUnitByteIO Class Reference

Represents a collection of data in a Dirac bytestream that can be parsed as a self-contained unit.

#include <parseunit_byteio.h>

Inheritance diagram for dirac::ParseUnitByteIO:
Collaboration diagram for dirac::ParseUnitByteIO:

Public Member Functions

 ParseUnitByteIO ()
 Constructor.
 ParseUnitByteIO (const ByteIO &byte_io)
 Constructor.
 ParseUnitByteIO (const ParseUnitByteIO &parseunit_byteio)
 Constructor.
 ~ParseUnitByteIO ()
 Destructor.
virtual void CollateByteStats (DiracByteStats &dirac_byte_stats)
 Gathers byte stats on the parse-unit data.
bool Input ()
 Reads from byte-stream to find parse data.
bool IsValid ()
 Accesses validity of a unit by comparing it with an adjacent unit.
bool CanSkip ()
 Can Skip past the entire parse-unit.
virtual const std::string GetBytes ()
 Gets string containing coded bytes.
void SetAdjacentParseUnits (ParseUnitByteIO *p_prev_parseunit)
 Set next/previous parse-unit values.
virtual int GetSize () const
 Gets size (in bytes)
int GetNextParseOffset () const
 Gets expected number of bytes to start of next parse-unit.
int GetPreviousParseOffset () const
 Gets number of bytes to start of previous parse-unit.
virtual ParseUnitType GetType () const
 Gets parse-unit type.
bool IsSeqHeader () const
 Returns true is parse unit is a Sequence Header.
bool IsEndOfSequence () const
 Returns true is parse unit is an End of Sequence unit.
bool IsAuxiliaryData () const
 Returns true is parse unit is Auxiliary Data.
bool IsPaddingData () const
 Returns true is parse unit is Padding data.
bool IsPicture () const
 Returns true is parse unit is Picture data.
bool IsLowDelay () const
 Returns true is parse unit is Low Delay Sybtax unit.
bool IsCoreSyntax () const
 Returns true is parse unit is Core syntax unit.
bool IsUsingAC () const
 Returns true is parse unit uses Arithmetic coding.
Public Member Functions inherited from dirac::ByteIO
 ByteIO (bool new_stream=true)
 Default constructor.
 ByteIO (const ByteIO &stream_data)
 Constructor.
virtual ~ByteIO ()
 Destructor.
int GetReadBytePosition () const
 Get position of read stream pointer.
void SetByteParams (const ByteIO &byte_io)
 Copies stream source/destination info.
void ByteAlignOutput ()
 Sync input for byte-alignment.
void WriteUint (unsigned int value)
 Ouputs an unsigned integer in interleaved exp Golomb format.
void SetBitsLeft (int left_bits)
 Sets input size in bits.
int BitsLeft (void)
 Sets input size in bits.

Protected Member Functions

virtual int CalcNextUnitOffset ()
 Calculates number of bytes to start of next unit.
virtual unsigned char CalcParseCode () const
 Pure virtual method for calculating parse-code.
bool SyncToUnitStart ()
 Locates start of parse-unit.
unsigned char GetParseCode () const
 Get parse code.
Protected Member Functions inherited from dirac::ByteIO
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.
bool ReadBool ()
 Reads boolean value.
bool ReadBoolB ()
 Reads boolean value - bounded i/o.
int ReadBit ()
 Reads next bit.
int ReadBitB ()
 Reads next bit - bounded i/o.
unsigned int ReadNBits (int count)
 Reads next 'count' bits.
void InputBytes (char *data, int count)
 Reads from stream.
void FlushInputB ()
 Flushes the bounde input.
int ReadSint ()
 Reads a signed integer in interleaved exp-Golomb format return Signed integer read.
int ReadSintB ()
 Reads a signed integer in interleaved exp-Golomb format from bounded input return Signed integer read.
unsigned int ReadUint ()
 Reads an unsigned integer in interleaved exp Golomb format.
unsigned int ReadUintB ()
 Reads an unsigned integer in interleaved exp Golomb format from bounded input.
unsigned int ReadUintLit (const int byte_size)
 Reads a fixed length unsigned integer from the stream in big endian.
unsigned char InputUnByte ()
 Reads a byte from the stream.
std::string InputUnString (const int count)
 Reads a series of bytes from a stream.
void WriteBit (const bool &bit)
 Outputs a bit.
int WriteNBits (unsigned int val)
 Outputs an unsigned integer.
void WriteNBits (unsigned int val, int count)
 Outputs an n bit integer.
void OutputBytes (const std::string &bytes)
 Outputs a series of bytes.
void OutputCurrentByte ()
 Outputs current byte contents.
void WriteSint (int val)
 Outputs an integer in Golomb signed integer format.
void WriteUintLit (const unsigned int &value, const int &length)
 Output unsigned int value in big endian format.
void RemoveRedundantBytes (const int count)
 Removes portion of byte-stream no longer required.
void SeekGet (const int offset, std::ios_base::seekdir dir)

Private Attributes

int m_previous_parse_offset
 Number of bytes to next parse-unit.
int m_next_parse_offset
 Number of bytes to previous parse-unit.
unsigned char m_parse_code
 Parse-type-identifier.

Additional Inherited Members

Protected Attributes inherited from dirac::ByteIO
std::stringstream * mp_stream
 Input/output steam.

Constructor & Destructor Documentation

◆ ParseUnitByteIO() [1/3]

◆ ParseUnitByteIO() [2/3]

dirac::ParseUnitByteIO::ParseUnitByteIO ( const ByteIO & byte_io)
Parameters
byte_ioStream parameters

References dirac::ByteIO::ByteIO().

◆ ParseUnitByteIO() [3/3]

dirac::ParseUnitByteIO::ParseUnitByteIO ( const ParseUnitByteIO & parseunit_byteio)
Parameters
parseunit_byteioParse-unit parameters

References ParseUnitByteIO().

◆ ~ParseUnitByteIO()

dirac::ParseUnitByteIO::~ParseUnitByteIO ( )

Member Function Documentation

◆ CalcNextUnitOffset()

virtual int dirac::ParseUnitByteIO::CalcNextUnitOffset ( )
protectedvirtual
Returns
Number of bytes to next unit

Reimplemented in dirac::EndOfSequenceByteIO.

◆ CalcParseCode()

virtual unsigned char dirac::ParseUnitByteIO::CalcParseCode ( ) const
inlineprotectedvirtual
Returns
Char containing bit-set for parse-unit parameters

Reimplemented in dirac::EndOfSequenceByteIO, dirac::PictureByteIO, and dirac::SequenceHeaderByteIO.

◆ CanSkip()

bool dirac::ParseUnitByteIO::CanSkip ( )
Returns
false Nothing to skip to

◆ CollateByteStats()

virtual void dirac::ParseUnitByteIO::CollateByteStats ( DiracByteStats & dirac_byte_stats)
virtual
Parameters
dirac_byte_statsStat container

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::EndOfSequenceByteIO, and dirac::PictureByteIO.

◆ GetBytes()

virtual const std::string dirac::ParseUnitByteIO::GetBytes ( )
virtual

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::PictureByteIO.

◆ GetNextParseOffset()

int dirac::ParseUnitByteIO::GetNextParseOffset ( ) const

◆ GetParseCode()

unsigned char dirac::ParseUnitByteIO::GetParseCode ( ) const
inlineprotected

◆ GetPreviousParseOffset()

int dirac::ParseUnitByteIO::GetPreviousParseOffset ( ) const

◆ GetSize()

virtual int dirac::ParseUnitByteIO::GetSize ( ) const
virtual

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::PictureByteIO, and dirac::SequenceHeaderByteIO.

◆ GetType()

virtual ParseUnitType dirac::ParseUnitByteIO::GetType ( ) const
virtual

◆ Input()

bool dirac::ParseUnitByteIO::Input ( )
Returns
false if not enough data in stream

◆ IsAuxiliaryData()

bool dirac::ParseUnitByteIO::IsAuxiliaryData ( ) const
inline

References m_parse_code.

◆ IsCoreSyntax()

bool dirac::ParseUnitByteIO::IsCoreSyntax ( ) const
inline

References m_parse_code.

◆ IsEndOfSequence()

bool dirac::ParseUnitByteIO::IsEndOfSequence ( ) const
inline

References m_parse_code.

◆ IsLowDelay()

bool dirac::ParseUnitByteIO::IsLowDelay ( ) const
inline

References m_parse_code.

◆ IsPaddingData()

bool dirac::ParseUnitByteIO::IsPaddingData ( ) const
inline

References m_parse_code.

◆ IsPicture()

bool dirac::ParseUnitByteIO::IsPicture ( ) const
inline

◆ IsSeqHeader()

bool dirac::ParseUnitByteIO::IsSeqHeader ( ) const
inline

References m_parse_code.

◆ IsUsingAC()

bool dirac::ParseUnitByteIO::IsUsingAC ( ) const
inline

References m_parse_code.

◆ IsValid()

bool dirac::ParseUnitByteIO::IsValid ( )

◆ SetAdjacentParseUnits()

void dirac::ParseUnitByteIO::SetAdjacentParseUnits ( ParseUnitByteIO * p_prev_parseunit)
Parameters
p_prev_parseunitPrevious parse-unit

References ParseUnitByteIO().

◆ SyncToUnitStart()

bool dirac::ParseUnitByteIO::SyncToUnitStart ( )
protected
Returns
false if not enough data

Member Data Documentation

◆ m_next_parse_offset

int dirac::ParseUnitByteIO::m_next_parse_offset
private

◆ m_parse_code

unsigned char dirac::ParseUnitByteIO::m_parse_code
private

◆ m_previous_parse_offset

int dirac::ParseUnitByteIO::m_previous_parse_offset
private

The documentation for this class was generated from the following file:

© 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.