IsoYUVFile Class Reference

#include <IsoYUVFile.hpp>

Inheritance diagram for IsoYUVFile:

ClassContainer List of all members.

Public Member Functions

 IsoYUVFile ()
 IsoYUVFile (UInt32 height, UInt32 width, UInt32 timeScale)
virtual ~IsoYUVFile ()
void init (UInt32 height, UInt32 width, UInt32 timeScale, bool useSpecifiedTime=false, UInt32 specifiedTime=0)
void addNewSampleInformation (UInt32 size, UInt32 timeDelta, bool useSpecifiedTime=false, UInt32 specifiedTime=0)
void finalizeHeader (UInt32 requiredSize=0)
void updateChunkOffset (UInt32 offsetToAdd)

Public Attributes

unsigned_int32 trackID

Detailed Description

Class IsoYUVFile, provides a high abstraction level API for creating ISO YUV files. Creates the entire header according to ISO/IEC 14496-12:2005(E) Usage: 1. Create, initialize 2. Add YUV samples (only refernce is added to YUV frame offsets in the header). 3. Finalize (updates header tables) 4. Use ClassContainer::encodeAll to encode the header in a BufferManager object 5. Append the actual YUV raw data to the header to get ISO YUV file


Constructor & Destructor Documentation

IsoYUVFile::IsoYUVFile (  ) 

Class Constructor. init must be used before adding samples/finalizing

See also:
IsoYUVFile::init

IsoYUVFile::IsoYUVFile ( UInt32  height,
UInt32  width,
UInt32  timeScale 
)

Class Constructor. calls init with these parameters

Parameters:
height Height of the YUV sequence
width Width of the YUV sequence
timeScale timeScale of the YUV sequence, i.e. # of clock ticks in a second
See also:
IsoYUVFile::init

IsoYUVFile::~IsoYUVFile (  )  [virtual]


Member Function Documentation

void IsoYUVFile::addNewSampleInformation ( UInt32  size,
UInt32  timeDelta,
bool  useSpecifiedTime = false,
UInt32  specifiedTime = 0 
)

Add a YUV frame sample reference in the header

Parameters:
size Number of bytes of current YUV frame
timeDelta Duration from the last sample
useSpecifiedTime If true, the last field is used to initialize header time stamps, else, time is calculated internally using standard C time routines. False by default
specifiedTime If useSpecifiedTime is true, should carry the time to initialize headers, according to ISO/IEC 14496-12:2005(E). Ignored otherwise
See also:
IsoYUVFile::init

void IsoYUVFile::finalizeHeader ( UInt32  requiredSize = 0  ) 

After adding all samples, call this to update all the header tables finally. Can be called multiple times to re-finalize after adding some more samples

Parameters:
requiredSize If non-zero, FreeSpaceBox is used to stuff the header to required size.

void IsoYUVFile::init ( UInt32  height,
UInt32  width,
UInt32  timeScale,
bool  useSpecifiedTime = false,
UInt32  specifiedTime = 0 
)

Initialization function. Use only once to create file

Parameters:
height Height of the YUV sequence
width Width of the YUV sequence
timeScale timeScale of the YUV sequence, i.e. # of clock ticks in a second
useSpecifiedTime If true, the last field is used to initialize header time stamps, else, time is calculated internally using standard C time routines. False by default
specifiedTime If useSpecifiedTime is true, should carry the time to initialize headers, according to ISO/IEC 14496-12:2005(E). Ignored otherwise
See also:
IsoYUVFile::init

void IsoYUVFile::updateChunkOffset ( UInt32  offsetToAdd  ) 

Can be used to update ChunkOffsetBox entries with a given offset


Member Data Documentation

unsigned_int32 IsoYUVFile::trackID


The documentation for this class was generated from the following files:
Generated on Sun Aug 20 15:06:40 2006 for ISOCodec by  doxygen 1.4.7