Definition at line 652 of file AAFPlugin.idl.
Public Member Functions | |
| HRESULT | SetEssenceAccess ([in] IAAFEssenceAccess *pEssenceAccess) |
| Set the essence access associated with the codec. | |
| HRESULT | CountFlavours ([out] aafUInt32 *pCount) |
| Some codecs have different variants or flavours of the media handled by a single codec. | |
| HRESULT | GetIndexedFlavourID ([in] aafUInt32 index,[out] aafUID_t *pVariant) |
| Some codecs have flavour handled by a single codec. | |
| HRESULT | CountDataDefinitions ([out] aafUInt32 *pCount) |
| Some codecs support formats which can encode multiple types of essence. | |
| HRESULT | GetIndexedDataDefinition ([in] aafUInt32 index,[out] aafUID_t *pDataDefID) |
| All codecs handle at least one kind of media (picture, sound, control) but some handle more than one. | |
| HRESULT | GetMaxCodecDisplayNameLength ([out] aafUInt32 *pBufSize) |
| This method should return the buffer size required to hold the largest display name (and optional flavour) including the terminating NUL character. | |
| HRESULT | GetCodecDisplayName ([in, ref] aafUID_constref flavour,[out, string, size_is(bufSize)] aafCharacter *pName,[in] aafUInt32 bufSize) |
| Given a flavour ID, return the human readable name. | |
| HRESULT | CountChannels ([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref essenceKind,[in] IAAFEssenceStream *stream,[out] aafUInt16 *pNumChannels) |
| Returns the number of channels which this codec can handle of the given essence kind. | |
| HRESULT | GetSelectInfo ([in] IAAFSourceMob *fileMob,[in] IAAFEssenceStream *stream,[out] aafSelectInfo_t *pSelectInfo) |
| Returns a block of information required to select essence by criteria. | |
| HRESULT | ValidateEssence ([in] IAAFSourceMob *fileMob,[in] IAAFEssenceStream *stream,[in] aafCheckVerbose_t verbose,[in] aafCheckWarnings_t outputWarnings,[in] aafUInt32 bufSize,[out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *pErrorText,[out] aafUInt32 *pBytesRead) |
| This method validates the metadata associated with the essence data. | |
| HRESULT | Create ([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref flavour,[in, ref] aafUID_constref essenceKind,[in, ref] aafRational_constref sampleRate,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) |
| 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 | Open ([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 | CountSamples ([in, ref] aafUID_constref essenceKind,[out] aafLength_t *pNumSamples) |
| Return the number of samples present on a given essenceKind. | |
| HRESULT | WriteSamples ([in] aafUInt32 nSamples,[in] aafUInt32 buflen,[in, size_is(buflen)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *samplesWritten,[out, ref] aafUInt32 *bytesWritten) |
| Writes data the given essence stream. | |
| HRESULT | ReadSamples ([in] aafUInt32 nSamples,[in] aafUInt32 buflen,[out, size_is(buflen), length_is(*bytesRead)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *samplesRead,[out, ref] aafUInt32 *bytesRead) |
| Read a given number of samples from an opened essence stream. | |
| HRESULT | Seek ([in] aafPosition_t sampleFrame) |
| Seek to a particular sample frame on the media. | |
| HRESULT | CompleteWrite ([in] IAAFSourceMob *pFileMob) |
| Close the essence stream, ready to open another or Finish. | |
| HRESULT | CreateDescriptorFromStream ([in] IAAFEssenceStream *pStream,[in] IAAFSourceMob *pSourceMob) |
| Given some raw essence (like a WAVE file), create an AAFEssenceDescriptor to match, with all fields filled in. | |
| HRESULT | GetCurrentEssenceStream ([out] IAAFEssenceStream **ppStream) |
| Return the current essence stream. | |
| HRESULT | PutEssenceFormat ([in] IAAFEssenceFormat *pFormat) |
| Set the format of the one or more parameters. | |
| HRESULT | GetEssenceFormat ([in] IAAFEssenceFormat *pFormatTemplate,[out] IAAFEssenceFormat **ppNewFormat) |
| Get the format of the one or more parameters by scanning the list of format codes supplied, and filling in the data values. | |
| HRESULT | GetDefaultEssenceFormat ([out] IAAFEssenceFormat **ppNewFormat) |
| HRESULT | GetEssenceDescriptorID ([out] aafUID_t *pDescriptorID) |
| Returns the stored object AUID of the essence descriptor class associated with this codec. | |
| HRESULT | GetEssenceDataID ([out] aafUID_t *pEssenceDataID) |
| Returns the stored object AUID of the essence data class associated with this codec. | |
| HRESULT | GetIndexedSampleSize ([in, ref] aafUID_constref essenceDefID,[in] aafPosition_t sampleOffset,[out] aafLength_t *pLength) |
| Returns the size of the sample at the given offset, and of the given data definition. | |
| HRESULT | GetLargestSampleSize ([in, ref] aafUID_constref essenceDefID,[out] aafLength_t *pLength) |
| Returns the size of the largest sample, and of the given data definition. | |
|
|
Close the essence stream, ready to open another or Finish. In the case where the client has created essence in an external AAF file, two essence descriptors will need to be updated. After updating the essence descriptor for the file which you are writing (like updating the number of samples), find the essence descriptor associated with pFileMob, and make the same changes to that essence desriptor. NOTE that pFileMob may be NULL in all cases except writing essence to an external AAF file. 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
|
|
||||||||||||||||||||
|
Returns the number of channels which this codec can handle of the given essence kind. If the essence kind is not handled by this codec at all, then return zero channels through pNumChannels, and return AAFRESULT_SUCCESS. The AAFEssenceStream is owned by IAAFEssenceAccess, and therefore should not AddRef() it. The codec may seek and read the supplied open stream as much as required to determine the number of channels, but should not assume that the Open method on the codec has been called (ie: it must parse any header itself). If the given IAAFEssenceStream pointer is NULL then the codec should look at the information in then source mob and essence descriptor (in the mob). 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
|
|
|
Some codecs support formats which can encode multiple types of essence. For example, interleaved video and audio. This call returns the number of essence data definitions (usually one) supported by this codec. 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
|
|
|
Some codecs have different variants or flavours of the media handled by a single codec. (For example, the Avid AVR codec handles multiple AVRs.) This call returns the number of flavours (usually one) supported by this codec. 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
|
|
||||||||||||
|
Return the number of samples present on a given essenceKind. The assumption is made that all slots of the same essence kind have the same number of samples. 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
|
|
||||||||||||||||||||||||||||
|
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
|
|
||||||||||||
|
Given some raw essence (like a WAVE file), create an AAFEssenceDescriptor to match, with all fields filled in. 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
|
|
||||||||||||||||
|
Given a flavour ID, return the human readable name. 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
|
|
|
Return the current essence stream. 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
|
|
|
|
|
|
Returns the stored object AUID of the essence data class associated with this codec. 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
|
|
|
Returns the stored object AUID of the essence descriptor class associated with this codec. 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
|
|
||||||||||||
|
Get the format of the one or more parameters by scanning the list of format codes supplied, and filling in the data values. The client should have called GetDefaultEssenceFormat() in order to find out what format codes are supported, but you may still get format codes out of range. The expected bevhavior of this routine is to pre-scan the list for valid format codes before setting any data, and returning AAFRESULT_INVALID_OP_CODEC. 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_ILLEGAL_FILEFMT
AAFRESULT_INVALID_PARM_SIZE
AAFRESULT_NULL_PARAM
|
|
||||||||||||
|
All codecs handle at least one kind of media (picture, sound, control) but some handle more than one. The kind of media is specified by an AUID representing an AAFDataDef. The number of data definitions is returned by CountDataDefinitions, and cached by the AAFPluginManager. 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
|
|
||||||||||||
|
Some codecs have flavour handled by a single codec. (For example, the Avid AVR codec handles multiple AVRs.) The number of flavours is returned by CountFlavours(), and cached by the AAFPluginManager. 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_OUT_OF_RANGE
|
|
||||||||||||||||
|
Returns the size of the sample at the given offset, and of the given data definition. For formats with fixed sample sizes (without a sample offset table), this method should return the standard sample size. 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
|
|
||||||||||||
|
Returns the size of the largest sample, and of the given data definition. For formats with fixed sample sizes (without a sample offset table), this method should return the standard sample size. 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
|
|
|
This method should return the buffer size required to hold the largest display name (and optional flavour) including the terminating NUL character. The client code does not expect this to be equal to any particular display name. 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
|
|
||||||||||||||||
|
Returns a block of information required to select essence by criteria. The SDK will use this criteria to find the best essence to fit requirements of size or speed. The AAFEssenceStream is owned by IAAFEssenceAccess, and therefore should not AddRef() it. The codec may seek and read the supplied open stream as much as required to determine the number of channels, but should not assume that the Open method on the codec has been called (ie: it must parse any header itself). If the given IAAFEssenceStream pointer is NULL then the codec should look at the information in then source mob and essence descriptor (in the mob). 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
|
|
||||||||||||||||||||
|
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
AAFRESULT_ESSENCE_NOT_FOUND
|
|
|
Set the format of the one or more parameters. The client should have called GetDefaultEssenceFormat() in order to find out what format codes are supported, but you may still get format codes out of range. The expected bevhavior of this routine is to pre-scan the list for valid format codes and lengths before setting any data, and returning AAFRESULT_INVALID_OP_CODEC. 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_ILLEGAL_FILEFMT
AAFRESULT_INVALID_PARM_SIZE
AAFRESULT_NULL_PARAM
|
|
||||||||||||||||||||||||
|
Read a given number of samples from an opened essence stream. 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_END_OF_DATA
|
|
|
Seek to a particular sample frame on the media. The sample frame is one frame for picture, and one sample times the number of interleaved channels for audio or other interleaved formats. 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_BADSAMPLEOFFSET
AAFRESULT_SUCCESS
|
|
|
Set the essence access associated with the codec. This routine is called by the SDK when creating or opening an essence stream, in order to give the codec access to the AAFEssenceAccess object, because this is the factory object for creating AAFEssenceFormats. It would be best to store away this pointer inside of the codec. In order to avoid circular reference counting problems DO NOT AddRef this interface pointer. Also, DO NOT save any interface derived from the the saved IAAFEssenceAccess pointer using QueryInterface unless the reference count is restored by a call to ReleaseReference. 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
|
|
||||||||||||||||||||||||||||||||
|
This method validates the metadata associated with the essence data. It may compare fields within the data, and also compare essence data against values in the IAAFFileDescriptor. The fields bufSize, pErrorText, and pBytes read are used to return a textual description of any problems encountered. If no problems were encountered, pBytesRead should be zero. This method is used during client and SDK validation, and is not intended for general use. 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
|
|
||||||||||||||||||||||||
|
Writes data the given essence stream. 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_CONTAINERWRITE
|
1.4.1