Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::DiracParser Class Reference

Dirac Stream Parser Class. More...

#include <dirac_cppparser.h>

Collaboration diagram for dirac::DiracParser:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Private Member Functions

Private Attributes


Detailed Description

This class is a wrapper around the SequenceDecompressor class. The Sequence Decompressor class needs a full frame of data to be available to decompress a frame successfully. So, the DiracParser class uses the InputStreamBuffer class to store data until a chunk is available to be processed and then invokes the SequenceDecompressor functions to process data. A chunk of data can be a start of sequence, a frame or end of sequence data. The istream used to instantiate the SequenceDecompressor object is created using an InputStreamBuffer object which is manipulated the DiracParser. This ensures that data is always available for processing by the SequenceDecompressor object.


Constructor & Destructor Documentation

dirac::DiracParser::DiracParser bool  verbose = false  ) 
 

Constructor takes

Parameters:
verbose boolean flag. Set to true for verbose output

dirac::DiracParser::~DiracParser  ) 
 

dirac::DiracParser::DiracParser const DiracParser dp  )  [private]
 


Member Function Documentation

const Frame& dirac::DiracParser::GetLastFrame  )  const
 

const Frame& dirac::DiracParser::GetNextFrame  )  const
 

const FrameParams& dirac::DiracParser::GetNextFrameParams  )  const
 

const SeqParams& dirac::DiracParser::GetSeqParams  )  const
 

void dirac::DiracParser::InitStateVars  )  [private]
 

DiracParser& dirac::DiracParser::operator= const DiracParser dp  )  [private]
 

DecoderState dirac::DiracParser::Parse  ) 
 

Parses the data in the input buffer. This function returns one of the following values
STATE_BUFFER : Not enough data in internal buffer to process
STATE_SEQUENCE : Start of sequence detected
STATE_PICTURE_START : Start of picture detected
STATE_PICTURE_AVAIL : Decoded picture available
STATE_SEQUENCE_END : End of sequence detected
STATE_INVALID : Invalid stream. Stop further processing

DecoderState dirac::DiracParser::SeekChunk  )  [private]
 

void dirac::DiracParser::SetBuffer char *  start,
char *  end
 

SetBuffer takes

Parameters:
start Start of input buffer
end End of input buffer

void dirac::DiracParser::SetSkip bool  skip  ) 
 

Set the skip flag to the value specified in skip. If skip is true, the parser will skip decoding the next frame until the this function is called again with skip set to false


Member Data Documentation

SequenceDecompressor* dirac::DiracParser::m_decomp [private]
 

bool dirac::DiracParser::m_found_end [private]
 

bool dirac::DiracParser::m_found_start [private]
 

std::istream* dirac::DiracParser::m_istr [private]
 

DecoderState dirac::DiracParser::m_next_state [private]
 

InputStreamBuffer dirac::DiracParser::m_sbuf [private]
 

unsigned dirac::DiracParser::m_shift [private]
 

int dirac::DiracParser::m_show_fnum [private]
 

bool dirac::DiracParser::m_skip [private]
 

FrameSort dirac::DiracParser::m_skip_type [private]
 

DecoderState dirac::DiracParser::m_state [private]
 

bool dirac::DiracParser::m_verbose [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.