AAFA Developer Support

Public Member Functions
IAAFSourceMob Interface Reference

This interface is used with an object representing a SourceMob containing some form of AAFEssenceDescriptor, either an AAFTapeDescriptor, AAFFileDescriptor AAFFilmDescriptor, or some extended descriptor not in the v1 specification. More...

List of all members.

Public Member Functions

HRESULT Initialize ()
 Initializes a newly allocated, empty IAAFSourceMob-supporting object.
HRESULT GetEssenceDescriptor ([out] IAAFEssenceDescriptor **ppEssence)
 Places the Essence Descriptor object attached to this Mob into the ppEssence argument.
HRESULT SetEssenceDescriptor ([in] IAAFEssenceDescriptor *pEssence)
 Sets the Essence Descriptor of this Mob to be the given one.
HRESULT AddNilReference ([in] aafSlotID_t slotID,[in] aafLength_t length,[in] IAAFDataDef *pDataDef,[in] aafRational_t editRate)
 This function adds a slot containing a NIL [sourceID 0.0....
HRESULT AppendTimecodeSlot ([in] aafRational_t editrate,[in] aafInt32 slotID,[in] aafTimecode_t startTC,[in] aafFrameLength_t length32)
 This function adds a Timecode slot to a specified tape Mob or film Mob, with a specified starting timecode, length, and edit rate.
HRESULT AppendEdgecodeSlot ([in] aafRational_t editrate,[in] aafInt32 slotID,[in] aafFrameOffset_t startEC,[in] aafFrameLength_t length32,[in] aafFilmType_t filmKind,[in] aafEdgeType_t codeFormat,[in] aafEdgecodeHeader_t header)
 Adds an Edgecode slot to a specified film Mob, with a specified starting edgecode, length, and edit rate.
HRESULT SpecifyValidCodeRange ([in] IAAFDataDef *pEssenceKind,[in] aafSlotID_t slotID,[in] aafRational_t editrate,[in] aafFrameOffset_t startOffset,[in] aafFrameLength_t length32)
 Adds slot containing Source Clips to a Source Mob to indicate that the Timecode or Edgecode is valid for that channel.
HRESULT AppendPhysSourceRef ([in] aafRational_t editrate,[in] aafSlotID_t aMobSlot,[in] IAAFDataDef *pEssenceKind,[in] aafSourceRef_t ref,[in] aafLength_t srcRefLength)
 Connects this Source Mob with the physical Source Mob that describes the previous generation of essence, appending it to existing Mob data.
HRESULT NewPhysSourceRef ([in] aafRational_t editrate,[in] aafSlotID_t aMobSlot,[in] IAAFDataDef *pEssenceKind,[in] aafSourceRef_t ref,[in] aafLength_t srcRefLength)
 Connects this Source Mob with the physical Source Mob that describes the previous generation of essence, replacing any existing Mob data.
HRESULT AddPulldownRef ([in] aafAppendOption_t addType,[in] aafRational_t editrate,[in] aafSlotID_t aMobSlot,[in] IAAFDataDef *pEssenceKind,[in] aafSourceRef_t ref,[in] aafLength_t srcRefLength,[in] aafPulldownKind_t pulldownKind,[in] aafPhaseFrame_t phaseFrame,[in] aafPulldownDir_t direction)
 Connects the specified Source Mob with the physical Source Mob that describes the previous generation of essence, with an additional AAFPulldown as part of the reference to indicate a non 1-1 relationship Between the two.

Detailed Description

This interface is used with an object representing a SourceMob containing some form of AAFEssenceDescriptor, either an AAFTapeDescriptor, AAFFileDescriptor AAFFilmDescriptor, or some extended descriptor not in the v1 specification.

Some methods exist here which exist only for one kind of AAFEssenceDescriptor.

These will return an error if the wrong descriptor is present.

If an AAFSourceMob points to another AAFSourceMob at the same rate [or non-picture], then AppendPhysMobRef is used to create the relationship.

If an AAFSourceMob points to picture on another AAFSourceMob at a different sample rate, then AddPulldownRef is used to create the relationship, and the AAFPulldown which describes how to map between the two rates.

In an AAFSourceMob is the end of the derivation chain for a particular track, then AddNilReference should be called for that slot, to say that that slot does exist on the SourceMob. For example, a video file mob with no derivation would have a single slot or type video, with a NIL reference to show that video exist, and was not derived from anything else on record.

In addition to the specific error results listed for each method, all methods in this interface may also return one of the following values:

AAFRESULT_NOMEMORY

Objects that implement IAAFSourceMob also implement the following interfaces:

Definition at line 25727 of file AAF.idl.


Member Function Documentation

HRESULT IAAFSourceMob::AddNilReference ( [in] aafSlotID_t  slotID,
[in] aafLength_t  length,
[in] IAAFDataDef pDataDef,
[in] aafRational_t  editRate 
)

This function adds a slot containing a NIL [sourceID 0.0....

] Source Clip. This special SourceID indicates that the mob chain ends here, which indicates that no record exists of what the essence was derived from. Some AAFSourceClip is still required on the track to indicate that the track exists, and may be referenced from other Mobs.

Examples of Source Mobs that are not derived from a previous source of essence are: Tape Source Mobs that were not created from film; File Source Mobs whose digital essence data was originally generated by computer and was not digitized from videotape.

Succeeds if all of the following are true:

  • The pDataDef parameter is valid.
  • editRate is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • the pDataDef parameter is NULL.

AAFRESULT_NOT_INITIALIZED

AAFRESULT_BADRATE

  • the editRate is not valid.
Parameters:
slotID[in] SlotID to be assigned to the new slot
length[in] Duration of the Source Clip to be added to the new slot
pDataDef[in] Data definition of the new slot
editRate[in] Edit rate of the new slot
HRESULT IAAFSourceMob::AddPulldownRef ( [in] aafAppendOption_t  addType,
[in] aafRational_t  editrate,
[in] aafSlotID_t  aMobSlot,
[in] IAAFDataDef pEssenceKind,
[in] aafSourceRef_t  ref,
[in] aafLength_t  srcRefLength,
[in] aafPulldownKind_t  pulldownKind,
[in] aafPhaseFrame_t  phaseFrame,
[in] aafPulldownDir_t  direction 
)

Connects the specified Source Mob with the physical Source Mob that describes the previous generation of essence, with an additional AAFPulldown as part of the reference to indicate a non 1-1 relationship Between the two.

Functionally, this is a helper function to create a slot with an AAFPulldown object which references an AAFSourceClip, which references a particular piece of media. This function takes many parameters because the components of an aafSourceRef_t and the AAFPulldown object have been broken out as separate parameters.

The ancestor of an AAFSourceMob with an AAFTapeDescriptor is often an AAFFilmDescriptor or NIL.

Succeeds if all of the following are true:

  • the pSourceRefObj pointer is valid.
  • the pEssenceKind pointer is valid.
  • a valid pulldown direction was specified.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pSourceRefObj or pEssenceKind is null.

AAFRESULT_PULLDOWN_DIRECTION

  • an invalid pulldown direction was specified.
Parameters:
addType[in] Tells whether to overwrite an existing slot segment, or create a sequence and append
editrate[in] Edit rate of slot to contain reference
aMobSlot[in] SlotID of slot to contain reference
pEssenceKind[in] Data kind of slot to contain reference. Requires a data kind valid for a essence stream. Valid data kinds are:
  • Picture
  • Sound
ref[in] Reference to a Physical Source Mob
srcRefLength[in] Length of the Source Clip in the Source Mob
pulldownKind[in] Method of conversion. Possible values are:
  • kAAFTwoThreePD -- Normal NTSC-20fps pulldown
  • kAAFPALPD
  • kAAFOneToOneNTSC -- NTSC recorded as 1 frame == 1 film frame.
  • kAAFOneToOnePAL -- PAL recorded as 1 frame == 1 film frame.
phaseFrame[in] phase of first frame
direction[in] Direction of the pulldown conversion. Possible values are:
  • kAAFTapeToFilmSpeed -- Used to link a file descriptor with a tape descriptor.
  • kAAFFilmToTapeSpeed -- Used to link a tape descriptor with a film descriptor.
HRESULT IAAFSourceMob::AppendEdgecodeSlot ( [in] aafRational_t  editrate,
[in] aafInt32  slotID,
[in] aafFrameOffset_t  startEC,
[in] aafFrameLength_t  length32,
[in] aafFilmType_t  filmKind,
[in] aafEdgeType_t  codeFormat,
[in] aafEdgecodeHeader_t  header 
)

Adds an Edgecode slot to a specified film Mob, with a specified starting edgecode, length, and edit rate.

You must add a essence slot with SpecifyValidCodeRange to make the edgecode slot valid.

Succeeds if all of the following are true:

  • The specified slot ID is not yet used.
  • This source mob references an AAFFilmDescriptor as an essence descriptor.

If this method fails no state is changed.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_SLOT_EXISTS

  • The specified slotID already exists.

AAFRESULT_FILMDESC_ONLY

  • Valid only for AAFSourceMob referencing an AAFFilmDescriptor as EssenceDescriptor.
Parameters:
editrate[in] Edit rate of the Edgecode slot
slotID[in] SlotID to assign to the new Edgecode slot
startEC[in] Starting Edgecode
length32[in] Length of the Edgecode component in the slot
filmKind[in] The film kind. Can be one of:
  • kFtNull
  • kFt35MM
  • kFt16MM
  • kFt8MM
  • kFt65MM
codeFormat[in] The code format. Can be one of:
  • kEtNull
  • kEtKeycode
  • kEtEdgenum4
  • kEtEdgenum5
header[in] The Edgecode's 8-byte header
HRESULT IAAFSourceMob::AppendPhysSourceRef ( [in] aafRational_t  editrate,
[in] aafSlotID_t  aMobSlot,
[in] IAAFDataDef pEssenceKind,
[in] aafSourceRef_t  ref,
[in] aafLength_t  srcRefLength 
)

Connects this Source Mob with the physical Source Mob that describes the previous generation of essence, appending it to existing Mob data.

If a physical Source Mob, such as a File Source Mob or tape Source Mob, references another physical Source Mob as its ancestor, with no pulldown, then this function makes the connection between the two.

Functionally, this is a helper function to create a slot with an AAFSourceClip referencing a particular piece of media. This function takes many parameters because the components of an aafSourceRef_t have been broken out as separate parameters.

The ancestor of an AAFSourceMob with an AAFFileDescriptor is often an AAFTapeDescriptor or NIL.

Succeeds if all of the following are true:

  • the pSourceRefObj pointer is valid.
  • the pEssenceKind pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pSourceRefObj or pEssenceKind is null.
Parameters:
editrate[in] Edit rate of slot to contain reference
aMobSlot[in] SlotID of slot to contain reference
pEssenceKind[in] Data kind of slot to contain reference. Requires a data kind valid for a essence stream. Valid data kinds are:
  • Picture
  • Sound
ref[in] Reference to a Physical Source Mob
srcRefLength[in] Length of the Source Clip
HRESULT IAAFSourceMob::AppendTimecodeSlot ( [in] aafRational_t  editrate,
[in] aafInt32  slotID,
[in] aafTimecode_t  startTC,
[in] aafFrameLength_t  length32 
)

This function adds a Timecode slot to a specified tape Mob or film Mob, with a specified starting timecode, length, and edit rate.

Your must also call SpecifyValidCodeRange to add the Filler to the other essence slots to indicate that the Timecode is valid for that channel.

Note: The startTC parameter is expressed in frames since midnight.

The length32 parameter can be the value FULL_RANGE, in which case the length is 24 hours.

Succeeds if all of the following are true:

  • The specified slot ID is not yet used.
  • This source mob references an AAFTapeDescriptor as an essence descriptor.

If this method fails no state is changed.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_SLOT_EXISTS

  • The specified slotID already exists.

AAFRESULT_TAPEDESC_ONLY

  • Valid only for AAFSourceMob referencing an AAFTapeDescriptor as EssenceDescriptor.
Parameters:
editrate[in] Edit rate of Timecode slot
slotID[in] SlotID of Timecode slot
startTC[in] Starting time code
length32[in] Duration of Timecode.
HRESULT IAAFSourceMob::GetEssenceDescriptor ( [out] IAAFEssenceDescriptor **  ppEssence)

Places the Essence Descriptor object attached to this Mob into the ppEssence argument.

If none exists yet, NULL is placed into the ppEssence argument.

The returned essence descriptor object, if it exists, is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppEssence pointer is valid.
  • A valid essence descriptor exists.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • ppEssence is null.

AAFRESULT_NO_ESSENCE_DESC

  • There is no essence descriptor. There has to be one of some kind for this to be a valid Mob.
Parameters:
ppEssence[out] Returned Essence Descriptor object
HRESULT IAAFSourceMob::Initialize ( )

Initializes a newly allocated, empty IAAFSourceMob-supporting object.

This method must be called after allocation, and before any other method can be called.

Succeeds if:

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_ALREADY_INITIALIZED

HRESULT IAAFSourceMob::NewPhysSourceRef ( [in] aafRational_t  editrate,
[in] aafSlotID_t  aMobSlot,
[in] IAAFDataDef pEssenceKind,
[in] aafSourceRef_t  ref,
[in] aafLength_t  srcRefLength 
)

Connects this Source Mob with the physical Source Mob that describes the previous generation of essence, replacing any existing Mob data.

If a physical Source Mob, such as a File Source Mob or tape Source Mob, references another physical Source Mob as its ancestor, with no pulldown, then this function makes the connection between the two.

Functionally, this is a helper function to create a slot with an AAFSourceClip referencing a particular piece of media. This function takes many parameters because the components of an aafSourceRef_t have been broken out as separate parameters.

The ancestor of an AAFSourceMob with an AAFFileDescriptor is often an AAFTapeDescriptor or NIL.

Succeeds if all of the following are true:

  • the pSourceRefObj pointer is valid.
  • the pEssenceKind pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pSourceRefObj or pEssenceKind is null.
Parameters:
editrate[in] Edit rate of slot to contain reference
aMobSlot[in] SlotID of slot to contain reference
pEssenceKind[in] Data kind of slot to contain reference. Requires a data kind valid for a essence stream. Valid data kinds are:
  • Picture
  • Sound
ref[in] Reference to a Physical Source Mob
srcRefLength[in] Length of the Source Clip
HRESULT IAAFSourceMob::SetEssenceDescriptor ( [in] IAAFEssenceDescriptor pEssence)

Sets the Essence Descriptor of this Mob to be the given one.

Succeeds if all of the following are true:

  • the pEssence pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pEssence is null.
Parameters:
pEssence[in] Essence Descriptor object
HRESULT IAAFSourceMob::SpecifyValidCodeRange ( [in] IAAFDataDef pEssenceKind,
[in] aafSlotID_t  slotID,
[in] aafRational_t  editrate,
[in] aafFrameOffset_t  startOffset,
[in] aafFrameLength_t  length32 
)

Adds slot containing Source Clips to a Source Mob to indicate that the Timecode or Edgecode is valid for that channel.

Note: The pEssenceKind parameter requires a data kind valid for a essence stream. Valid data kinds are:

  • Picture
  • Sound

Succeeds if all of the following are true:

  • the pEssenceKind pointer is valid.
  • The specified slot ID is not yet used.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NOT_INITIALIZED

AAFRESULT_NULL_PARAM

  • pEssenceKind is null.

AAFRESULT_SLOT_EXISTS

  • The specified slotID already exists.
Parameters:
pEssenceKind[in] Data kind for the slot to be added
slotID[in] SlotID for the slot to be added
editrate[in] Edit rate for the slot to be added
startOffset[in] Start offset for the slot to be added
length32[in] Duration of the Source Clip in the slot

Generated on Wed Jul 4 2012 22:13:30 for AAF COM API by doxygen 1.7.4