The AAFMultiEssenceCodec interface describes the calls of a plugin which handles encoding media in a particular file format, with optional compression. More...
Public Member Functions | |
HRESULT | MultiCreate ([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref flavour,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable,[in] aafUInt32 numParms,[in, size_is(numParms)] aafmMultiCreate_t *createParms) |
Initalize the stream to be of the correct format with no data and default metadata, attach the correct type of EssenceDescriptor to the fileMob, and file in the default metadata on the descriptor also. | |
HRESULT | MultiOpen ([in] IAAFSourceMob *fileMob,[in] aafMediaOpenMode_t openMode,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) |
Read the metadata from the essence descriptor and/or the formatted data, and prepare the stream for reading the first sample of data. | |
HRESULT | WriteBlocks ([in] aafDeinterleave_t inter,[in] aafUInt16 xferBlockCount,[in, size_is(xferBlockCount)] aafmMultiXfer_t *pTransferParm,[out, size_is(xferBlockCount)] aafmMultiResult_t *pResultParm) |
Write blocks from one or more buffers, interleaving if needed. | |
HRESULT | ReadBlocks ([in] aafDeinterleave_t inter,[in] aafUInt16 xferBlockCount,[out, size_is(xferBlockCount)] aafmMultiXfer_t *pTransferParm,[out, size_is(xferBlockCount)] aafmMultiResult_t *pResultParm) |
Read blocks into one or more buffers, de-interleaving if needed. |
The AAFMultiEssenceCodec interface describes the calls of a plugin which handles encoding media in a particular file format, with optional compression.
These methods are used internally by the SDK, and are not exported through the client interface.
The AAFPluginManager keeps a copy of each codec in a table, along with cached copies of pertinant metadata about the codec, and instantiates a copy of the codec for each media stream.
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_NULL_PARAM
AAFRESULT_NOMEMORY
Definition at line 3861 of file AAFPlugin.idl.
HRESULT IAAFMultiEssenceCodec::MultiCreate | ( | [in] IAAFSourceMob * | fileMob, |
[in, ref] aafUID_constref | flavour, | ||
[in] IAAFEssenceStream * | stream, | ||
[in] aafCompressEnable_t | compEnable, | ||
[in] aafUInt32 | numParms, | ||
[in, size_is(numParms)] aafmMultiCreate_t * | createParms | ||
) |
Initalize the stream to be of the correct format with no data and default metadata, attach the correct type of EssenceDescriptor to the fileMob, and file in the default metadata on the descriptor also.
Prepare the stream for writing the first sample of data.
This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
AAFRESULT_STREAM_FULL
fileMob | [in] Create the essence attached to this file mob |
flavour | [in, ref] which flavour of the codec to use |
stream | [in] Here is an essence stream with the data |
compEnable | [in] optionally compressing |
numParms | [in] Here are the number of create parameters |
createParms | [in, size_is(numParms)] Here are the create parameters |
HRESULT IAAFMultiEssenceCodec::MultiOpen | ( | [in] IAAFSourceMob * | fileMob, |
[in] aafMediaOpenMode_t | openMode, | ||
[in] IAAFEssenceStream * | stream, | ||
[in] aafCompressEnable_t | compEnable | ||
) |
Read the metadata from the essence descriptor and/or the formatted data, and prepare the stream for reading the first sample of data.
This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
fileMob | [in] Open the essence attached to this file mob |
openMode | [in] In this mode |
stream | [in] Here is an essence stream with the raw data |
compEnable | [in] optionally decompressing |
HRESULT IAAFMultiEssenceCodec::ReadBlocks | ( | [in] aafDeinterleave_t | inter, |
[in] aafUInt16 | xferBlockCount, | ||
[out, size_is(xferBlockCount)] aafmMultiXfer_t * | pTransferParm, | ||
[out, size_is(xferBlockCount)] aafmMultiResult_t * | pResultParm | ||
) |
Read blocks into one or more buffers, de-interleaving if needed.
This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_NULL_PARAM
AAFRESULT_SMALLBUF
AAFRESULT_CODEC_CHANNELS
AAFRESULT_XFER_DUPCH
AAFRESULT_END_OF_DATA
inter | [in] Whether the material will be de-interleaved on read |
xferBlockCount | [in] How many aafmMultiXfer blocks follow |
pTransferParm | [out, size_is(xferBlockCount)] One or more blocks containing buffer pointer and length |
pResultParm | [out, size_is(xferBlockCount)] One or more blocks containing results |
HRESULT IAAFMultiEssenceCodec::WriteBlocks | ( | [in] aafDeinterleave_t | inter, |
[in] aafUInt16 | xferBlockCount, | ||
[in, size_is(xferBlockCount)] aafmMultiXfer_t * | pTransferParm, | ||
[out, size_is(xferBlockCount)] aafmMultiResult_t * | pResultParm | ||
) |
Write blocks from one or more buffers, interleaving if needed.
This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:
AAFRESULT_SUCCESS
AAFRESULT_ZERO_SAMPLESIZE
AAFRESULT_NULL_PARAM
AAFRESULT_SMALLBUF
AAFRESULT_CODEC_CHANNELS
AAFRESULT_XFER_DUPCH
AAFRESULT_MULTI_WRITELEN
inter | [in] Whether the material will be de-interleaved on read |
xferBlockCount | [in] How many aafMultiXfer blocks follow |
pTransferParm | [in, size_is(xferBlockCount)] One or more blocks containing buffer pointer and length |
pResultParm | [out, size_is(xferBlockCount)] One or more blocks containing results |