# 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:

List of all members.

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

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

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

## Constructor & Destructor Documentation

dirac::ParseUnitByteIO::ParseUnitByteIO | ( |  | ) |

dirac::ParseUnitByteIO::ParseUnitByteIO | ( | const ByteIO & | byte_io | ) |

Parameters:

  | byte_io | Stream parameters

dirac::ParseUnitByteIO::ParseUnitByteIO | ( | const ParseUnitByteIO & | parseunit_byteio | ) |

Parameters:

  | parseunit_byteio | Parse-unit parameters

dirac::ParseUnitByteIO::~ParseUnitByteIO | ( |  | ) |

## Member Function Documentation

virtual int dirac::ParseUnitByteIO::CalcNextUnitOffset | ( |  | ) | `[protected, virtual]`

Returns:
  Number of bytes to next unit

Reimplemented in dirac::EndOfSequenceByteIO.

virtual unsigned char dirac::ParseUnitByteIO::CalcParseCode | ( |  | ) | const`[inline, protected, virtual]`

Returns:
  Char containing bit-set for parse-unit parameters

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

bool dirac::ParseUnitByteIO::CanSkip | ( |  | ) |

Returns:
  false Nothing to skip to

virtual void dirac::ParseUnitByteIO::CollateByteStats | ( | DiracByteStats & | dirac_byte_stats | ) | `[virtual]`

Parameters:

  | dirac_byte_stats | Stat container

Reimplemented from dirac::ByteIO.

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

virtual const std::string dirac::ParseUnitByteIO::GetBytes | ( |  | ) | `[virtual]`

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::PictureByteIO.

int dirac::ParseUnitByteIO::GetNextParseOffset | ( |  | ) | const

unsigned char dirac::ParseUnitByteIO::GetParseCode | ( |  | ) | const`[inline, protected]`

References m_parse_code.

Referenced by dirac::PictureByteIO::IsNonRef(), dirac::PictureByteIO::IsRef(), and dirac::PictureByteIO::NumRefs().

int dirac::ParseUnitByteIO::GetPreviousParseOffset | ( |  | ) | const

virtual int dirac::ParseUnitByteIO::GetSize | ( |  | ) | const`[virtual]`

Reimplemented from dirac::ByteIO.

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

virtual ParseUnitType dirac::ParseUnitByteIO::GetType | ( |  | ) | const`[virtual]`

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

bool dirac::ParseUnitByteIO::Input | ( |  | ) |

Returns:
  false if not enough data in stream

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

bool dirac::ParseUnitByteIO::IsAuxiliaryData | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsCoreSyntax | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsEndOfSequence | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsLowDelay | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsPaddingData | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsPicture | ( |  | ) | const`[inline]`

References m_parse_code.

Referenced by dirac::PictureByteIO::IsInter(), and dirac::PictureByteIO::IsIntra().

bool dirac::ParseUnitByteIO::IsSeqHeader | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsUsingAC | ( |  | ) | const`[inline]`

References m_parse_code.

bool dirac::ParseUnitByteIO::IsValid | ( |  | ) |

void dirac::ParseUnitByteIO::SetAdjacentParseUnits | ( | ParseUnitByteIO * | p_prev_parseunit | ) |

Parameters:

  | p_prev_parseunit | Previous parse-unit

bool dirac::ParseUnitByteIO::SyncToUnitStart | ( |  | ) | `[protected]`

Returns:
  false if not enough data

## Member Data Documentation

int dirac::ParseUnitByteIO::m_next_parse_offset`[private]`

unsigned char dirac::ParseUnitByteIO::m_parse_code`[private]`

Referenced by GetParseCode(), IsAuxiliaryData(), IsCoreSyntax(), IsEndOfSequence(), IsLowDelay(), IsPaddingData(), IsPicture(), IsSeqHeader(), and IsUsingAC().

int dirac::ParseUnitByteIO::m_previous_parse_offset`[private]`

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

- parseunit_byteio.h

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