class TDTFReader

Trace Reader. More...

Full nameCoral::TDTFReader
Definition#include <tdtfreader.h>
Inherited byTDTFMediaReader
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Public Members

Protected Members


Detailed Description

This class is a reader for a TDTF trace file. The file will be mapped to memory using mmap() to provide easy access to trace and interval data.

 TDTFReader ()

Constructor.

TDTFReader ()

[virtual]

Destructor.

bool  open (const char* name, const bool readWrite = false)

[virtual]

Open TDTF trace file.

Parameters:
nameName of TDTF trace file to open.
writabletrue, to open file in read/write mode; false otherwise.

Returns: true, if open operation has been successful; false otherwise.

void  close ()

[virtual]

Close TDTF trace file.

inline bool  hasResourceUtilizationLists ()

[const]

Check, if TDTF file has got resource/utilization lists.

Returns: true, if lists are included; false otherwise.

bool  isValidFrameRate (const double frameRate)

[const]

Check, if given frame rate is a valid value.

Parameters:
frameRateFrame rate to be checked.

Returns: true, if given rate is valid; false otherwise.

double  getNearestValidFrameRate (const double frameRate)

[const]

Get nearest lower valid frame rate for given frame rate.

Parameters:
rateFrame rate.

Returns: Valid frame rate nearest to given rate.

inline double  getMinFrameRate ()

[const]

Get minimum frame rate.

Returns: Minimum frame rate.

inline double  getMaxFrameRate ()

[const]

Get maximum frame rate.

Returns: Maximum frame rate.

double  getNextFrameRateForRate (const double frameRate)

[const]

Get next higher valid frame rate for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Next higher valid frame rate.

double  getPrevFrameRateForRate (const double frameRate)

[const]

Get next lower valid frame rate for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Next lower valid frame rate.

cardinal  getMaxByteCountForDelay (const card64 rtpPosition, const cardinal layer, const double frameRate, const cardinal delay)

[const]

Get maximum number of bytes for given buffer delay (in frame rate units).

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.
bufferDelayBuffer delay in frame rate units.

Returns: Maximum number of bytes.

cardinal  getMaxFrameCountForDelay (const card64 rtpPosition, const cardinal layer, const double frameRate, const cardinal delay)

[const]

Get maximum number of frames for given buffer delay (in frame rate units).

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.
bufferDelayBuffer delay in frame rate units.

Returns: Maximum number of frames.

inline cardinal  getPayloadFrameSizeForDelay ( const card64 rtpPosition, const cardinal layer, const double frameRate, const cardinal bufferDelay)

[const]

Get payload frame size for given buffer delay (in frame rate units).

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.
bufferDelayBuffer delay in frame rate units.

Returns: Payload frame size.

cardinal  getTraceFrameSize (const card64 rtpPosition, const cardinal layer, const double frameRate)

[const]

Get payload frame size for given position, layer and frame rate from trace.

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.

Returns: Frame size.

cardinal  getTraceFrameID (const card64 rtpPosition, const cardinal layer, const double frameRate)

[const]

Get frame ID for given position, layer and frame rate from trace.

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.

Returns: Frame ID.

double  getLayerScalability (const card64 rtpPosition, const cardinal layer, const double frameRate)

[const]

Get layer scalability.

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.

Returns: Layer scalability.

cardinal  getLayerFlags (const card64 rtpPosition, const cardinal layer, const double frameRate)

[const]

Get layer flags.

Parameters:
rtpPositionRTP position within media.
layerLayer number.
frameRateFrame rate.

Returns: Layer flags.

cardinal  getFrames (const double frameRate)

[const]

Get number of frames for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Number of frames.

cardinal  getLayers (const double frameRate)

[const]

Get number of layers for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Number of layers.

cardinal  getMaxBufferDelay (const card64 rtpPosition, const double frameRate)

[const]

Get maximum buffer delay for given position and frame rate.

Parameters:
rtpPositionRTP position within media.
frameRateFrame rate.

Returns: Maximum buffer delay

bool  checkAccess (const cardinal position, const cardinal length)

[const]

Check, if access to trace file at given position for given length is within valid range.

Parameters:
positionFile position.
lengthAccess length.

Returns: true, is access is valid; false otherwise.

const TDTFPrefix*  getTDTFPrefix ()

[const]

Get TDTF prefix.

Returns: Pointer to TDTF prefix.

const TDTFSuffix*  getTDTFSuffix ()

[const]

Get TDTF suffix.

Returns: Pointer to TDTF suffix.

const MainIndexEntry*  getMainIndexEntry (const double frameRate)

[const]

Get entry for given frame rate from main index.

Parameters:
frameRateFrame rate.

Returns: Pointer to entry.

const TraceHeader*  getTraceHeader (const double frameRate)

[const]

Get trace header for given frame rate.

Parameters:
frameRateFrame rate.

Returns: Pointer to trace header.

const PositionLengthIntervalIndexHeader*  getIPLIHeader ( const double frameRate)

[const]

Get entry for given frame rate from Position/Length/Interval index.

Parameters:
frameRateFrame rate.

Returns: Pointer to entry.

const IntervalHeader*  getIntervalHeader (const cardinal position, const double frameRate)

[const]

Get interval header for given frame rate and position.

Parameters:
positionPosition.
frameRateFrame rate.

Returns: Pointer to trace header.

const LayerHeader*  getLayerHeader (const cardinal position, const cardinal layer, const double frameRate)

[const]

Get layer header for given frame rate, position and layer.

Parameters:
positionPosition.
layerLayer.
frameRateFrame rate.

Returns: Pointer to layer header.

const EmpiricalEnvelope*  getEmpiricalEnvelope (const cardinal position, const cardinal layer, const double frameRate, const bool frameCount = false)

[const]

Get empirical envelope for byterate or frame count for given frame rate, layer and position.

Parameters:
positionPosition.
layerLayer.
frameRateFrame rate.
frameCounttrue to get empirical envelope for frameCount; false for byterate.

Returns: Pointer to empirical envelope header.

const ResourceUtilizationHeader*  getResourceUtilizationHeader ( const cardinal position, const double frameRate)

[const]

Get resource/utilization header for given position and frame rate.

Parameters:
positionPosition refering to *maximum* frame rate.
frameRateFrame rate.

Returns: ResourceUtilizationHeader.

const UtilizationHeader*  getFrameSizeUtilizationHeader ( const cardinal position, const cardinal layer, const double frameRate)

[const]

Get frame size utilization constants for given frame rate, layer and position.

Parameters:
positionPosition.
layerLayer.
frameRateFrame rate.

Returns: UtilizationHeader.

const UtilizationHeader*  getFrameRateUtilizationHeader ( const cardinal position, const double frameRate)

[const]

Get frame rate utilization constants for given frame rate, layer and position.

Parameters:
positionPosition.
frameRateFrame rate.
aReference to store constant A.
bReference to store constant B.
cReference to store constant C.

Returns: UtilizationHeader.

inline cardinal  positionToFramePosition (const double frameRate, const card64 rtpPosition)

[const]

Convert RTP position to frame position.

Parameters:
frameRateFrame rate.
rtpPositionRTP position.

Returns: Frame position.

inline card64  framePositionToPosition (const double frameRate, const cardinal framePosition)

[const]

Convert frame position to RTP position.

Parameters:
frameRateFrame rate.
framePositionFrame RTP position.

Returns: RTP position.

void  printEmpiricalEnvelope (ostream& os, const cardinal position, const double frameRate, const bool frameCount, const bool compact)

[const]

Print empirical envelopes for all layers for byterate or frame count for given frame rate and position.

Parameters:
osOutput stream.
frameRateFrame rate.
positionPosition.
compacttrue, to print *without* EE approximations; false otherwise.
frameCounttrue to get empirical envelope for frameCount; false for byterate.

void  print (ostream& os, const double frameRate, const bool printEE, const bool compactEE, const bool printRUL, const bool printUC)

[const]

Print complete TDTF trace for given frame rate.

Parameters:
osOutput stream.
frameRateFrame rate.
printEEtrue, to print empirical envelope; false otherwise.
compactEEtrue, to print Empirical envelope *without* approximations; false otherwise.
printRULtrue, to print resource/utilization list; false otherwise.
printUCtrue, to print utilization constants; false otherwise.

int InputFile

char* InputMemory

cardinal InputLength

MainIndexHeader* MainIndex

[protected]

cardinal MainIndexEntries

[protected]

ResourceUtilizationListIndexHeader* RULIndex

[protected]

cardinal RULIndexEntries

[protected]

double MinFrameRate

[protected]

double MaxFrameRate

[protected]