# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

Public Member Functions | Private Types | Private Member Functions | Private Attributes
dirac::DiracByteStream Class Reference

Represents a series of bytes in the Dirac bytestream specfication format. More...

`#include <dirac_byte_stream.h>`

Inheritance diagram for dirac::DiracByteStream:

List of all members.

## Public Member Functions
| DiracByteStream ()
| Constructor.
| ~DiracByteStream ()
| Destructor.
void | AddBytes (char *start, int count)
| Adds Dirac-formatted bytes to internal-byte-stream for processing.
DiracByteStats | GetLastUnitStats ()
| Gets the statistics of the most recent parse-unit to be processed.
ParseUnitByteIO * | GetNextParseUnit ()
| Gets the next parse-unit in the current byte-stream.
DiracByteStats | GetSequenceStats () const
| Gets stats for current sequence.
void | AddSequenceHeader (SequenceHeaderByteIO *p_seqheader_byteio)
| Adds a random access point to the current Dirac byte stream.
void | AddPicture (PictureByteIO *p_frame_byteio)
| Adds a picture to the current Dirac byte stream.
void | Clear ()
| Clear parse-units.
DiracByteStats | EndSequence ()
| Insert end-of-sequence data.
const std::string | GetBytes ()
| Gets a pointer to all current output bytes.
bool | IsUnitAvailable () const
| Any info pending?
Public Member Functions inherited from dirac::ByteIO
| ByteIO (bool new_stream=true)
| Default constructor.
| ByteIO (const ByteIO &stream_data)
| Constructor.
virtual | ~ByteIO ()
| Destructor.
virtual void | CollateByteStats (DiracByteStats &dirac_byte_stats)
| Gathers byte-stream statistics.
int | GetReadBytePosition () const
| Get position of read stream pointer.
virtual int | GetSize () const
| *Gets size (in bytes)
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.

## Private Types
typedef std::queue< std::pair < ParseUnitType, ParseUnitByteIO * > > | ParseUnitList
| Parse-units in Dirac stream.

## Private Member Functions
void | Reset (ParseUnitByteIO *p_curr_unit, int pos)

## Private Attributes
ParseUnitList | m_parse_unit_list
ParseUnitByteIO * | mp_prev_parse_unit
| Last unit to be processed Required for specifying the previous parse-unit.
DiracByteStats | m_sequence_stats
| Stats for current sequence.

## Additional Inherited Members
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)
Protected Attributes inherited from dirac::ByteIO
std::stringstream * | mp_stream
| Input/output steam.

## Detailed Description

These bytes are grouped into more managable parse units by this class.

## Member Typedef Documentation

typedef std::queue< std::pair <ParseUnitType, ParseUnitByteIO*> > dirac::DiracByteStream::ParseUnitList
| private

## Constructor & Destructor Documentation

dirac::DiracByteStream::DiracByteStream | ( |  | ) |

dirac::DiracByteStream::~DiracByteStream | ( |  | ) |

## Member Function Documentation

void dirac::DiracByteStream::AddBytes | ( | char * | start,
|  | int | count
| ) |  |

Parameters:

  start | Start of char list
  count | Number of chars

void dirac::DiracByteStream::AddPicture | ( | PictureByteIO * | p_frame_byteio | ) |

Parameters:

  p_frame_byteio | Picture stream. This class is now responsible for deleting.

void dirac::DiracByteStream::AddSequenceHeader | ( | SequenceHeaderByteIO * | p_seqheader_byteio | ) |

Parameters:

  p_seqheader_byteio | Sequence header data.

void dirac::DiracByteStream::Clear | ( |  | ) |

DiracByteStats dirac::DiracByteStream::EndSequence | ( |  | ) |

Returns:
  Sequence stats

const std::string dirac::DiracByteStream::GetBytes | ( |  | ) |
| virtual

Reimplemented from dirac::ByteIO.

DiracByteStats dirac::DiracByteStream::GetLastUnitStats | ( |  | ) |

Returns:
  Byte-statistics

ParseUnitByteIO* dirac::DiracByteStream::GetNextParseUnit | ( |  | ) |

DiracByteStats dirac::DiracByteStream::GetSequenceStats | ( |  | ) | const

bool dirac::DiracByteStream::IsUnitAvailable | ( |  | ) | const

void dirac::DiracByteStream::Reset | ( | ParseUnitByteIO * | p_curr_unit,
|  | int | pos
| ) |  |
| private

## Member Data Documentation

ParseUnitList dirac::DiracByteStream::m_parse_unit_list
| private

DiracByteStats dirac::DiracByteStream::m_sequence_stats
| private

ParseUnitByteIO* dirac::DiracByteStream::mp_prev_parse_unit
| private

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

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