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...
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. |
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:
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:
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
AAFRESULT_NULL_PARAM
AAFRESULT_NOT_INITIALIZED
AAFRESULT_BADRATE
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
AAFRESULT_PULLDOWN_DIRECTION
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:
|
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:
|
phaseFrame | [in] phase of first frame |
direction | [in] Direction of the pulldown conversion. Possible values are: |
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_SLOT_EXISTS
AAFRESULT_FILMDESC_ONLY
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:
|
codeFormat | [in] The code format. Can be one of:
|
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
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:
|
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_SLOT_EXISTS
AAFRESULT_TAPEDESC_ONLY
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
AAFRESULT_NO_ESSENCE_DESC
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
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
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:
|
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:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
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:
Succeeds if all of the following are true:
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
AAFRESULT_NOT_INITIALIZED
AAFRESULT_NULL_PARAM
AAFRESULT_SLOT_EXISTS
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 |