Track Class Reference

Holds data relating to a track. More...

#include <metadata.h>

Inheritance diagram for Track:

ObjectInterface RefCount IRefCount List of all members.

Public Types

enum  TrackType {
  TypeUndetermined = -1, TypeUnknown = 0, TypeTimecode, TypeDM,
  TypePicture, TypeSound, TypeData, TypeAux,
  TypePText
}
 Type of a track. More...

Public Member Functions

 Track (std::string BaseType)
 Track (MDOTypePtr BaseType)
 Track (const UL &BaseUL)
 Track (ULPtr &BaseUL)
SourceClipPtr AddSourceClip (Int64 Duration=-1)
 Add a SourceClip to a track.
TimecodeComponentPtr AddTimecodeComponent (Int64 Start=0, Int64 Duration=-1)
 Add a Timecode Component to a track, taking the FPS and Dropframe settings from the track.
TimecodeComponentPtr AddTimecodeComponent (UInt16 FPS, bool DropFrame, Int64 Start=0, Int64 Duration=-1)
 Add a Timecode Component to a track.
DMSegmentPtr AddDMSegment (Int64 EventStart=-1, Int64 Duration=-1)
 Add a DMSegment to a track.
DMSourceClipPtr AddDMSourceClip (Int64 Duration=-1)
 Add a DMSourceClip to a track.
Int64 UpdateDuration (void)
 Update the duration field in the sequence for this track based on component durations.
PackageParent GetParent (void)
 Get the package containing this track.
void SetParent (PackagePtr &NewParent)
 Set the package containing this track.
void SetParent (IRefCount< Package > *NewParent)
 Set the track containing this component.
TrackType GetType (void)
 Determine the type of this track.
bool IsEssenceTrack (void)
 Determine if this is an essence track.
bool IsTimecodeTrack (void)
 Determine if this is a timecode track.
bool IsDMTrack (void)
 Determine if this is a descriptive metadata track.

Static Public Member Functions

static TrackPtr GetTrack (MDObjectPtr Object)
 Return the containing "Track" object for this MDObject.
static TrackPtr Parse (MDObjectPtr BaseObject)
 Parse an existing MDObject into a Track object.
static void AddTrackType (TrackType Type, const UInt8 *Label, int CompareLength=16)
 Add a new track type definition label.

Public Attributes

ComponentList Components
 Each component on this track.

Protected Types

typedef std::list< TrackTypeListItemTrackTypeList
 List of track type definitions.

Protected Member Functions

 Track (MDObjectPtr BaseObject)
 Protected constructor used to create from an existing MDObject.

Static Protected Member Functions

static void InitTrackTypes (void)
 Initialise the TrackTypes list with known track types.

Protected Attributes

PackageParent Parent
 Package containing this track.
TrackType ThisTrackType
 The type of this track.

Static Protected Attributes

static TrackTypeList TrackTypes
 List of known track type definitions.
static bool TrackTypesInited
 Set true once TrackTypeList has been initialized.

Classes

struct  TrackTypeListItem
 Structure for a single item in the track type list (for comparing data definitions). More...

Detailed Description

Holds data relating to a track.


Member Typedef Documentation

typedef std::list<TrackTypeListItem> TrackTypeList [protected]

List of track type definitions.


Member Enumeration Documentation

enum TrackType

Type of a track.

Enumerator:
TypeUndetermined  Not yet checked.
TypeUnknown  Not a known type.
TypeTimecode  Timecode track (of any type).
TypeDM  Descriptive Metadata track.
TypePicture  Picture track.
TypeSound  Sound track.
TypeData  Data track.
TypeAux  Auxiliary track.
TypePText  Parsed Text track.


Constructor & Destructor Documentation

Track ( MDObjectPtr  BaseObject  )  [inline, protected]

Protected constructor used to create from an existing MDObject.

Track ( std::string  BaseType  )  [inline]

Track ( MDOTypePtr  BaseType  )  [inline]

Track ( const UL BaseUL  )  [inline]

Track ( ULPtr BaseUL  )  [inline]


Member Function Documentation

SourceClipPtr AddSourceClip ( Int64  Duration = -1  ) 

Add a SourceClip to a track.

Parameters:
Duration The duration of this SourceClip, -1 or omitted for unknown

TimecodeComponentPtr AddTimecodeComponent ( Int64  Start = 0,
Int64  Duration = -1 
) [inline]

Add a Timecode Component to a track, taking the FPS and Dropframe settings from the track.

TimecodeComponentPtr AddTimecodeComponent ( UInt16  FPS,
bool  DropFrame,
Int64  Start = 0,
Int64  Duration = -1 
)

Add a Timecode Component to a track.

Parameters:
FPS The rounded integer timebase of the track in frames per second
DropFrame = true if dropframe is to be use with this timecode
Start The starting timecode converted to an integer frame count since 00:00:00:00
Duration The duration of this SourceClip, -1 or omitted for unknown

Set the framerate

Set the initial timecode

DMSegmentPtr AddDMSegment ( Int64  EventStart = -1,
Int64  Duration = -1 
)

Add a DMSegment to a track.

Parameters:
EventStart The start position of this Segemnt, -1 or omitted for static or timeline
Duration The duration of this SourceClip, -1 or omitted for static

DMSourceClipPtr AddDMSourceClip ( Int64  Duration = -1  ) 

Add a DMSourceClip to a track.

Int64 UpdateDuration ( void   ) 

Update the duration field in the sequence for this track based on component durations.

Returns:
The duration, or -1 if unknown

PackageParent GetParent ( void   )  [inline]

Get the package containing this track.

void SetParent ( PackagePtr NewParent  )  [inline]

Set the package containing this track.

void SetParent ( IRefCount< Package > *  NewParent  )  [inline]

Set the track containing this component.

Track::TrackType GetType ( void   ) 

Determine the type of this track.

bool IsEssenceTrack ( void   )  [inline]

Determine if this is an essence track.

< Picture track

< Sound track

< Data track

bool IsTimecodeTrack ( void   )  [inline]

Determine if this is a timecode track.

bool IsDMTrack ( void   )  [inline]

Determine if this is a descriptive metadata track.

TrackPtr GetTrack ( MDObjectPtr  Object  )  [static]

Return the containing "Track" object for this MDObject.

Returns:
NULL if MDObject is not contained in a Track object

TrackPtr Parse ( MDObjectPtr  BaseObject  )  [static]

Parse an existing MDObject into a Track object.

void AddTrackType ( TrackType  Type,
const UInt8 Label,
int  CompareLength = 16 
) [static]

Add a new track type definition label.

Parameters:
Type The type of track that this new definition identifies
Label The label to compare with the data definition
CompareLength The number of bytes to compare in the label, this allows generic labels

void InitTrackTypes ( void   )  [static, protected]

Initialise the TrackTypes list with known track types.


Member Data Documentation

ComponentList Components

Each component on this track.

PackageParent Parent [protected]

Package containing this track.

TrackType ThisTrackType [protected]

The type of this track.

Track::TrackTypeList TrackTypes [static, protected]

List of known track type definitions.

bool TrackTypesInited [static, protected]

Set true once TrackTypeList has been initialized.


The documentation for this class was generated from the following files:
Generated on Mon Apr 2 15:21:01 2007 for MXFLib by  doxygen 1.5.1-p1