AAFEssenceMultiAccess is an interace which provides streaming access over essence data. More...
Public Member Functions | |
HRESULT | WriteMultiSamples ([in] aafUInt16 arrayElemCount,[in, size_is(arrayElemCount)] aafmMultiXfer_t *xferArray,[out, size_is(arrayElemCount)] aafmMultiResult_t *resultArray) |
Writes multiple channels worth of sample data to an interleaved data stream in the natural order for the CODEC. | |
HRESULT | ReadMultiSamples ([in] aafUInt16 elemCount,[in, size_is(elemCount)] aafmMultiXfer_t *xferArray,[out, size_is(elemCount)] aafmMultiResult_t *resultArray) |
Reads one or more channels from an interleaved data stream. |
AAFEssenceMultiAccess is an interace which provides streaming access over essence data.
This nterfaces deals with essence data which is in an uncompressed form, and handles compression or decompression of the data if required.
You should call the CreateMultiEssence or OpenMultiEssence calls on AAFMasterMob in order to get an interface pointer to AAFEssenceAccess, as there is no public create or open method in the interface.
Objects implementing this interface also implement AAFEssenceAccess for operations other than read and write.
A number of errors can be returned from most method calls, These are: AAFRESULT_NOMEMORY -- The system ran out of memory processing the method. AAFRESULT_NULL_PARAM -- A NULL parameter was passed in which was required.
HRESULT IAAFEssenceMultiAccess::ReadMultiSamples | ( | [in] aafUInt16 | elemCount, |
[in, size_is(elemCount)] aafmMultiXfer_t * | xferArray, | ||
[out, size_is(elemCount)] aafmMultiResult_t * | resultArray | ||
) |
Reads one or more channels from an interleaved data stream.
Possible Errors:
Standard errors (see top of file).
AAFRESULT_END_OF_ESSENCE -- Hit the end of the essence (like EOF) while reading.
elemCount | [in] The size of the array for transfer operations. |
xferArray | [in, size_is(elemCount)] Points to an array of transfer parameters. All fields in this array except for bytesXferred must be set up before doing the transfer. Some of the fields in the xferArray structure are status results like bytesXferred and samplesXferred. |
The multiXfer_t structure has the following fields, which specify one channel of data:
essenceDef [IN] -- The essence type definition physical [IN] -- The physical input-output channel numSamples [IN] -- The number of samples to transfer buflen [IN] -- The size of the buffer buffer [IN] -- The buffer for this
resultArray | [out, size_is(elemCount)] Results go into this array. |
The aafmMultiResult_t structure has the following fields, which return result for one channel of data:
bytesXfered [OUT] -- The total number of bytes transferred samplesXfered [OUT] -- The total number of samples transferred
HRESULT IAAFEssenceMultiAccess::WriteMultiSamples | ( | [in] aafUInt16 | arrayElemCount, |
[in, size_is(arrayElemCount)] aafmMultiXfer_t * | xferArray, | ||
[out, size_is(arrayElemCount)] aafmMultiResult_t * | resultArray | ||
) |
Writes multiple channels worth of sample data to an interleaved data stream in the natural order for the CODEC.
arrayElemCount | [in] number of elements in the array of transfer operations |
xferArray | [in,size_is(arrayElemCount)] Points to an array of transfer parameters. All fields in this array except for bytesXferred must be set up before doing the transfer. Some of the fields in the xferArray structure are status results like bytesXferred and samplesXferred. |
The multiXfer_t structure has the following fields, which specify one channel of data:
essenceDef [IN] -- The essence type definition physical [IN] -- The physical input-output channel numSamples [IN] -- The number of samples to transfer buflen [IN] -- The size of the buffer buffer [IN] -- The buffer for this
resultArray | [out,size_is(arrayElemCount)] Put results into this array. It has the following fields, which return result for one channel of data: |
bytesXfered [OUT] -- The total number of bytes transferred samplesXfered [OUT] -- The total number of samples transferred