Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::SequenceDecompressor Class Reference

Decompresses a sequence of frames from a stream. More...

#include <seq_decompress.h>

Collaboration diagram for dirac::SequenceDecompressor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Private Member Functions

Private Attributes


Detailed Description

This class decompresses a sequence of frames, frame by frame.


Constructor & Destructor Documentation

dirac::SequenceDecompressor::SequenceDecompressor ParseUnitByteIO parseunit,
bool  verbosity
 

Initializes the decompressor with an input stream and level of output detail.

Parameters:
parseunit First access-unit of new sequence
verbosity when true, increases the amount of information displayed during decompression

dirac::SequenceDecompressor::~SequenceDecompressor  ) 
 

Closes files and releases resources.

dirac::SequenceDecompressor::SequenceDecompressor const SequenceDecompressor cpy  )  [private]
 

Copy constructor is private and body-less. This class should not be copied.


Member Function Documentation

Frame& dirac::SequenceDecompressor::DecompressNextFrame ParseUnitByteIO p_parseunit_byteio,
bool  skip = false
 

This function decodes the next frame in coding order and returns the next frame in display order. In general these will differ, and because of re-ordering there is a delay which needs to be imposed. This creates problems at the start and at the end of the sequence which must be dealt with. At the start we just keep outputting frame 0. At the end you will need to loop for longer to get all the frames out. It's up to the calling function to do something with the decoded frames as they come out -- write them to screen or to file, as required.

Parameters:
p_parseunit_byteio Frame information in Dirac-stream format
skip skip decoding next frame
Returns:
reference to the next locally decoded frame available for display

bool dirac::SequenceDecompressor::Finished  ) 
 

Indicates whether or not the last frame in the sequence has been decompressed.

Returns:
true if last frame has been compressed; false if not

DecoderParams& dirac::SequenceDecompressor::GetDecoderParams  )  [inline]
 

Returns the decoder parameters used for this decompression run.

Returns:
decoder parameters.

Frame& dirac::SequenceDecompressor::GetNextFrame  ) 
 

const FrameParams& dirac::SequenceDecompressor::GetNextFrameParams  )  const
 

ParseParams& dirac::SequenceDecompressor::GetParseParams  )  [inline]
 

Returns the parse parameters used for this decompression run.

Returns:
parse parameters.

SourceParams& dirac::SequenceDecompressor::GetSourceParams  )  [inline]
 

Returns the source parameters used for this decompression run.

Returns:
source parameters.

void dirac::SequenceDecompressor::NewAccessUnit ParseUnitByteIO parseunit_byteio  ) 
 

Parameters:
parseunit_byteio AccessUnit info in Dirac-stream format

SequenceDecompressor& dirac::SequenceDecompressor::operator= const SequenceDecompressor rhs  )  [private]
 

Assignment = is private and body-less. This class should not be assigned.


Member Data Documentation

bool dirac::SequenceDecompressor::m_all_done [private]
 

int dirac::SequenceDecompressor::m_current_code_fnum [private]
 

DecoderParams dirac::SequenceDecompressor::m_decparams [private]
 

int dirac::SequenceDecompressor::m_delay [private]
 

FrameBuffer* dirac::SequenceDecompressor::m_fbuffer [private]
 

FrameDecompressor* dirac::SequenceDecompressor::m_fdecoder [private]
 

int dirac::SequenceDecompressor::m_highest_fnum [private]
 

int dirac::SequenceDecompressor::m_last_frame_read [private]
 

ParseParams dirac::SequenceDecompressor::m_parse_params [private]
 

int dirac::SequenceDecompressor::m_show_fnum [private]
 

SourceParams dirac::SequenceDecompressor::m_srcparams [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.