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 std::istream *  ip,
bool  verbosity
 

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

Parameters:
ip input data stream containing a sequence of compressed images
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 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:
skip skip decoding next frame
Returns:
reference to the next locally decoded frame available for display

bool dirac::SequenceDecompressor::Finished  )  [inline]
 

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

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

Frame& dirac::SequenceDecompressor::GetNextFrame  ) 
 

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

SeqParams& dirac::SequenceDecompressor::GetSeqParams  )  [inline]
 

Returns the parameters used for this decompression run.

Returns:
decompression parameters originally provide din the constructor.

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

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

bool dirac::SequenceDecompressor::ReadNextFrameHeader  ) 
 

void dirac::SequenceDecompressor::ReadStreamHeader  )  [private]
 

Reads the sequence data from the bitstream. This contains all the block information. Temporal prediction information is contained in the frame headers so that a simple GOP need not be used, or if so, can be reset on the fly.


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]
 

std::istream* dirac::SequenceDecompressor::m_infile [private]
 

int dirac::SequenceDecompressor::m_last_frame_read [private]
 

int dirac::SequenceDecompressor::m_show_fnum [private]
 

SeqParams dirac::SequenceDecompressor::m_sparams [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.