AAFA Developer Support

Main Page | Class List | File List | Class Members

IAAFMultiEssenceCodec Interface Reference

List of all members.

Detailed Description

Objects that implement IAAFMultiEssenceCodec also implement the following interfaces: - IAAFPlugin.

Definition at line 1599 of file AAFPlugin.idl.

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.


Member Function Documentation

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

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

AAFRESULT_NULL_PARAM

  • fileMob, stream or createParms is null.

AAFRESULT_STREAM_FULL

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.

Parameters:
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

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

AAFRESULT_NULL_PARAM

  • fileMob or stream is null.

Parameters:
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

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

AAFRESULT_NULL_PARAM

  • pTransferParm is null.

AAFRESULT_SMALLBUF

  • The buffer is not large enough to hold the data

AAFRESULT_CODEC_CHANNELS

  • SPecified channel numbers are out of range

AAFRESULT_XFER_DUPCH

  • The SDK passed in the same channel number on two blocks

AAFRESULT_END_OF_DATA

  • Hit either the end-of-file on a raw essence file, or the end of the essence property. The bytesRead fields inside of pTransferParm correctly reflect the number of bytes and complete samples on each track.

Parameters:
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

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

AAFRESULT_ZERO_SAMPLESIZE

  • The sample size of the stream has not been set.

AAFRESULT_NULL_PARAM

  • pTransferParm or pResultParm is null.

AAFRESULT_SMALLBUF

  • One of the supplied buffers is not large enough to hold the given number of samples.

AAFRESULT_CODEC_CHANNELS

  • SPecified channel numbers are out of range

AAFRESULT_XFER_DUPCH

  • The SDK passed in the same channel number on two blocks

AAFRESULT_MULTI_WRITELEN

  • The length fields of the channels must specify an identical length of clock time.

Parameters:
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


Generated on Thu Feb 17 09:34:31 2005 for by doxygen 1.4.1