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

[legend]
Collaboration diagram for dirac::ParseUnitByteIO:

[legend]

List of all members.

## Public Member Functions

- ParseUnitByteIO (int accessunit_fnum)
    Constructor.
- ParseUnitByteIO (const ByteIO &byte_io)
    Constructor.
- ParseUnitByteIO (int accessunit_fnum, 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 (const ParseUnitByteIO &next_unit)
    Accesses validity of a unit by comparing it with an adjacent unit.
- bool Skip ()
    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.

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

- int m_accessunit_fnum
    AccessUnit number that parse-unit belongs to.

## 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 | ( | int | accessunit_fnum | ) |

Parameters:

  | accessunit_fnum | AccessUnit number that parse-unit belongs to

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

Parameters:

  | byte_io | Stream parameters

dirac::ParseUnitByteIO::ParseUnitByteIO | ( | int | accessunit_fnum,
|  | const ParseUnitByteIO & | parseunit_byteio |
| ) |  |  |

Parameters:

  | accessunit_fnum | AccessUnit number that parse-unit belongs to
  | parseunit_byteio | Parse-unit parameters

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

## Member Function Documentation

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::FrameByteIO.

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

Returns:
  false if not enough data in stream

Reimplemented in dirac::AccessUnitByteIO, and dirac::FrameByteIO.

bool dirac::ParseUnitByteIO::IsValid | ( | const ParseUnitByteIO & | next_unit | ) |

Parameters:

  | next_unit | Next unit i stream after this one

bool dirac::ParseUnitByteIO::Skip | ( |  | ) |

Returns:
  false Nothing to skip to

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

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::FrameByteIO.

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

Parameters:

  | p_prev_parseunit | Previous parse-unit

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

Reimplemented from dirac::ByteIO.

Reimplemented in dirac::AccessUnitByteIO, and dirac::FrameByteIO.

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

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

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

Reimplemented in dirac::AccessUnitByteIO, dirac::EndOfSequenceByteIO, and dirac::FrameByteIO.

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::AccessUnitByteIO, dirac::EndOfSequenceByteIO, and dirac::FrameByteIO.

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

Returns:
  false if not enough data

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

References m_parse_code.

## Member Data Documentation

int dirac::ParseUnitByteIO::m_accessunit_fnum `[protected]`

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

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

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

Referenced by GetParseCode().

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.