The IAAFMasterMobEx interface extends IAAFMasterMob. More...
Public Member Functions | |
HRESULT | ExtendEssence ([in] aafSlotID_t masterSlotID,[in] IAAFDataDef *pMediaKind,[in, ref] aafUID_constref codecID,[in] aafRational_t editRate,[in] aafRational_t samplerate,[in] aafCompressEnable_t Enable,[in] IAAFLocator *destination,[in, ref] aafUID_constref fileFormat,[out] IAAFEssenceAccess **access) |
Extends a single stream of essence that was originally created using IAAFMasterMob::CreateEssence. | |
HRESULT | ExtendMultiEssence ([in, ref] aafUID_constref codecID,[in] aafUInt16 arrayElemCount,[in, ref, size_is(arrayElemCount)] aafmMultiCreate_t *mediaArray,[in] aafCompressEnable_t Enable,[in] IAAFLocator *destination,[in, ref] aafUID_constref fileFormat,[out] IAAFEssenceMultiAccess **access) |
Extends a multi-channel interleaved stream of essence that was originally created using IAAFMasterMob::CreateMultiEssence. |
The IAAFMasterMobEx interface extends IAAFMasterMob.
It supports extended essence. Extended essence is represented by a Sequence of SourceClip objects. Each SourceClip refers to a SourceMob which describes one chunk of essence.
Individual chunks of embedded essence are currently limited to 2GB in size. A Sequence of SourceClips provides the means to overcome this limit. There is no limit to the number of SourceClip objects in the sequence or the sum total size of all essence in a file, other than those imposed by the underlying persistent object store. It is expected that this will be significantly larger than 2GB of essence data.
Essence can be extended at any time, for any reason. Typically, it will be extended because a CODEC returned an error indicating a 2GB limit was reached. To overcome this limit, simply extend the essence.
IAAFEssenceAccess::ReadSamples knows how to read embedded essence. This interface is created by IAAFMasterMob::OpenEssence
This interface returns the same errors as IAAFMasterMob::CreateEssence, and IAAFMasterMob::CreateMultiEssence.
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 IAAFMasterMobEx also implement the following interfaces:
HRESULT IAAFMasterMobEx::ExtendEssence | ( | [in] aafSlotID_t | masterSlotID, |
[in] IAAFDataDef * | pMediaKind, | ||
[in, ref] aafUID_constref | codecID, | ||
[in] aafRational_t | editRate, | ||
[in] aafRational_t | samplerate, | ||
[in] aafCompressEnable_t | Enable, | ||
[in] IAAFLocator * | destination, | ||
[in, ref] aafUID_constref | fileFormat, | ||
[out] IAAFEssenceAccess ** | access | ||
) |
Extends a single stream of essence that was originally created using IAAFMasterMob::CreateEssence.
Extended essence is represented by a Sequence of SourceClip objects. The first call to ExtendEssence will cause the TimelineMobSlot's SourceClip object to be replaced by a Sequence. The initial SourceClip becomes the first component of the new Sequence.
masterSlotID | [in] |
pMediaKind | [in] create essence of this type |
codecID | [in, ref] using this codec |
editRate | [in] with this edit rate |
samplerate | [in] with this sample rate |
Enable | [in] optionally compressing it |
destination | [in] Optionally create the file HERE. |
fileFormat | [in, ref] with this format |
access | [out] Return an essence access on the essence. |
HRESULT IAAFMasterMobEx::ExtendMultiEssence | ( | [in, ref] aafUID_constref | codecID, |
[in] aafUInt16 | arrayElemCount, | ||
[in, ref, size_is(arrayElemCount)] aafmMultiCreate_t * | mediaArray, | ||
[in] aafCompressEnable_t | Enable, | ||
[in] IAAFLocator * | destination, | ||
[in, ref] aafUID_constref | fileFormat, | ||
[out] IAAFEssenceMultiAccess ** | access | ||
) |
Extends a multi-channel interleaved stream of essence that was originally created using IAAFMasterMob::CreateMultiEssence.
Extended essence is represented by a Sequence of SourceClip objects. The first call to ExtendEssence will cause the TimelineMobSlot's SourceClip object to be replaced by a Sequence. The initial SourceClip becomes the first component of the new Sequence.
codecID | [in, ref] using this codec |
arrayElemCount | [in] this many channels |
mediaArray | [in,ref,size_is(arrayElemCount)] using these definitions |
Enable | [in] optionally compressing it |
destination | [in] Optionally create the file HERE. |
fileFormat | [in, ref] with this format |
access | [out] Return an essence access on the essence. |