Main Page

AAFA Developer Support

Advanced Authoring Format

Plugin Programmer's Interface

Reference Manual

SDK Rev 1.1.6

This manual is automatically generated by Doxygen from the AAF IDL files AAF/ref-impl/include/com-api/AAFPlugin.idl and AAF/ref-impl/include/com-api/AAFPluginTypes.idl

If you would prefer to browse it off-line, a zipped copy can be downloaded as pluginapiman.zip or pluginapiman.tgz

This manual is also available in Microsoft HtmlHelp format pluginapi.chm. Note, that recent versions of Microsoft Windows will block html content in downloaded chm files. To resolve this you must download the file and right click on it to open the file's property dialog, then click the "Unblock" button on the "General" tab.

Any corrections or omissions should be drawn to the attention of developers by posting a message on the project discussion forums.

Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


IAAFPluginTypes::_aafSelectInfo_t Struct Reference

  • IAAFPluginTypes
  • _aafSelectInfo_t
Public Attributes
IAAFPluginTypes::_aafSelectInfo_t Struct Reference

List of all members.

Public Attributes

aafBoolean_t | hwAssisted
aafBoolean_t | isNative
aafBoolean_t | willHandleMDES
aafInt16 | relativeLoss
aafUInt32 | avgBitsPerSec

Detailed Description

Definition at line 75 of file AAFPluginTypes.idl.

Member Data Documentation

aafUInt32 IAAFPluginTypes::_aafSelectInfo_t::avgBitsPerSec

Definition at line 81 of file AAFPluginTypes.idl.

aafBoolean_t IAAFPluginTypes::_aafSelectInfo_t::hwAssisted

Definition at line 77 of file AAFPluginTypes.idl.

aafBoolean_t IAAFPluginTypes::_aafSelectInfo_t::isNative

Definition at line 78 of file AAFPluginTypes.idl.

aafInt16 IAAFPluginTypes::_aafSelectInfo_t::relativeLoss

Definition at line 80 of file AAFPluginTypes.idl.

aafBoolean_t IAAFPluginTypes::_aafSelectInfo_t::willHandleMDES

Definition at line 79 of file AAFPluginTypes.idl.

Generated on Wed Jul 4 2012 22:14:08 for by doxygen 1.7.4


IAAFClassExtension Interface Reference

Public Member Functions
IAAFClassExtension Interface Reference

The AAFClassExtension interface describes the calls of a plugin the implements an extension to an AAF class. More...

List of all members.

Public Member Functions

HRESULT RegisterDefinitions ([in] IAAFDictionary *pDictionary)
This method should register all type, class and property definitions into the given dictionary necessary to create instances of this extension object.

Detailed Description

The AAFClassExtension interface describes the calls of a plugin the implements an extension to an AAF class.

The AAFPluginManager keeps a copy of each plugin in a table, along with cached copies of pertinant metadata about the plugin, and instantiates a copy of the plugin for every instance of the associated extension class.

Definition at line 97 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFClassExtension::RegisterDefinitions ( [in] IAAFDictionary * pDictionary )

This method should register all type, class and property definitions into the given dictionary necessary to create instances of this extension object.

Succeeds if all of the following are true:

  • the pDictionary pointer is valid and all

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pDictionary arg is NULL.
Parameters:
pDictionary [in] The dictionary to use to register definitions
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


IAAFEssenceCodec Interface Reference

Public Member Functions
IAAFEssenceCodec Interface Reference

AAFEssenceCodec is DEPRECATED, please use AAFEssenceCodec3. More...

List of all members.

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)
Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.
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.

Detailed Description

AAFEssenceCodec is DEPRECATED, please use AAFEssenceCodec3.

The AAFEssenceCodec 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

  • One of the passed in pointers is NULL.

AAFRESULT_NOMEMORY

  • insufficient system memory is available to perform the operation. Objects that implement IAAFEssenceCodec also implement the following interfaces:

IAAFPlugin

Definition at line 173 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceCodec::CompleteWrite ( [in] IAAFSourceMob * pFileMob )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptor 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:
pFileMob [in] Optional second essence descriptor to also update
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_NULL_PARAM

  • pNumChannels is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
essenceKind | [in, ref] This is the type of essence to open
stream | [in] Here is an essence stream with the data
pNumChannels | [out] The number of channels present
HRESULT IAAFEssenceCodec::CountDataDefinitions ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of essence data definitions supported
HRESULT IAAFEssenceCodec::CountFlavours ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of flavours supported
HRESULT IAAFEssenceCodec::CountSamples | ( | [in, ref] aafUID_constref | essenceKind,
 |  | [out] aafLength_t * | pNumSamples
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pNumSamples is null.
Parameters:
essenceKind | [in, ref] Tell how many samples of this type are on the mob
pNumSamples | [out] The number of samples present of the given essence kind
HRESULT IAAFEssenceCodec::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.

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

  • pEssenceAccess 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
essenceKind | [in, ref] This is the type of essence to create
sampleRate | [in, ref] The sample rate for this essence
stream | [in] Here is an essence stream with the data
compEnable | [in] optionally compressing
HRESULT IAAFEssenceCodec::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.

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

  • pStream or pSourceMob is null.
Parameters:
pStream | [in] A raw file stream
pSourceMob | [in] Put the finished descriptor on this source mob
HRESULT IAAFEssenceCodec::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.

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

  • pName is null.
Parameters:
flavour | [in, ref] which flavour of the codec to use, or kNoCodecFlavour
pName | [out, string, size_is(bufSize)] Human-readable name of the flavour
bufSize | [in] length of the buffer to hold flavour Name
HRESULT IAAFEssenceCodec::GetCurrentEssenceStream ( [out] IAAFEssenceStream ** ppStream )

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

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

AAFRESULT_NULL_PARAM

  • ppStream is null.
Parameters:
ppStream [out] The current essence stream
HRESULT IAAFEssenceCodec::GetDefaultEssenceFormat ( [out] IAAFEssenceFormat ** ppNewFormat )

Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.

Previous systems required you to "know" what parameters a given codec could support. With this function, a client application can check what the default parameter would be, and change only those which are required. It differs from GetEssenceFormat() in that it GetEssenceFormat() returns the current client-set settings.

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

  • ppNewFormat is null.
Parameters:
ppNewFormat [out] An essence format with all valid parameter names and values filled in
HRESULT IAAFEssenceCodec::GetEssenceDataID ( [out] aafUID_t * pEssenceDataID )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceDataID is null.
Parameters:
pEssenceDataID [out] The stored object AUID of the essence data class
HRESULT IAAFEssenceCodec::GetEssenceDescriptorID ( [out] aafUID_t * pDescriptorID )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptorID is null.
Parameters:
pDescriptorID [out] The stored object AUID of the essence descriptor class
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormatTemplate or ppNewFormat is null.
Parameters:
pFormatTemplate | [in] An essence format object to use as a template of which fields to read
ppNewFormat | [out] A new essence format object with the data filled in
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_NULL_PARAM

  • ppDataDef is null.
Parameters:
index | [in] Which data definition to get
pDataDefID | [out] The returned dataDefinition ID
HRESULT IAAFEssenceCodec::GetIndexedFlavourID | ( | [in] aafUInt32 | index,
 |  | [out] aafUID_t * | pVariant
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pVariant is null.

AAFRESULT_OUT_OF_RANGE

  • index must be >= 0 and < the number of flavours returned in CountFlavours().
Parameters:
index | [in] Which flavour to get the ID for
pVariant | [out] The returned flavour ID
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition describing the essence
sampleOffset | [in] The zero-based offset to get the size of
pLength | [out] The returned length of the given sample
HRESULT IAAFEssenceCodec::GetLargestSampleSize | ( | [in, ref] aafUID_constref | essenceDefID,
 |  | [out] aafLength_t * | pLength
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition of the essence
pLength | [out] The returned length of the largest sample
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_NULL_PARAM

  • pBufSize is null.
Parameters:
pBufSize [out] length of the buffer required to hold the longest flavour Name
HRESULT IAAFEssenceCodec::GetSelectInfo | ( | [in] IAAFSourceMob * | fileMob,
 |  | [in] IAAFEssenceStream * | stream,
 |  | [out] aafSelectInfo_t * | pSelectInfo
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pSelectInfo is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
stream | [in] Here is an essence stream with the data
pSelectInfo | [out] Information required to select by media criteria
HRESULT IAAFEssenceCodec::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.

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

  • pEssenceAccess is null.

AAFRESULT_ESSENCE_NOT_FOUND

  • The essence could not be located inside of the current file, or by following any of the locators.
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 IAAFEssenceCodec::PutEssenceFormat ( [in] IAAFEssenceFormat * pFormat )

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormat is null.
Parameters:
pFormat [in] An essence format object
HRESULT IAAFEssenceCodec::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.

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_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:
nSamples | [in] Read this many samples
buflen | [in] into a buffer of this size
buffer | [out, size_is(buflen),length_is(*bytesRead)] The transfer buffer
samplesRead | [out, ref] The number of samples actually read
bytesRead | [out, ref] The number of bytes actually read
HRESULT IAAFEssenceCodec::Seek ( [in] aafPosition_t sampleFrame )

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

  • The supplied sample offset is out of range

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)
Parameters:
sampleFrame [in] The sample frame to seek to.
HRESULT IAAFEssenceCodec::SetEssenceAccess ( [in] IAAFEssenceAccess * pEssenceAccess )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceAccess is null.
Parameters:
pEssenceAccess [in] The associated IAAFEssenceAccess
HRESULT IAAFEssenceCodec::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.

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

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

AAFRESULT_NULL_PARAM

  • pErrorText is null.
Parameters:
fileMob | [in] Run a check on this file mob
stream | [in] and this essence data stream
verbose | [in] This is the verbosity level of the output
outputWarnings | [in] This determines whether the output contains warnings
bufSize | [in] length of the buffer to hold the error result
pErrorText | [out, size_is(bufSize), length_is(*pBytesRead)] Human-readable text describing problems (or lack therof) with the essence
pBytesRead | [out] The number of result bytes returned
HRESULT IAAFEssenceCodec::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.

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

  • buffer 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_CONTAINERWRITE

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.
Parameters:
nSamples | [in] write this many samples
buflen | [in] from a buffer of this size
buffer | [in,size_is(buflen)] from a buffer
samplesWritten | [out, ref] number of samples actually written
bytesWritten | [out, ref] number of bytes actually written


IAAFEssenceCodec2 Interface Reference

Public Member Functions
IAAFEssenceCodec2 Interface Reference

The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API. More...

List of all members.

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)
Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.
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.
HRESULT | SetFlavour ([in, ref] aafUID_constref flavour)
Switches the codec into the specified flavour.

Detailed Description

The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API.

The AAFEssenceCodec2 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

  • One of the passed in pointers is NULL.

AAFRESULT_NOMEMORY

  • insufficient system memory is available to perform the operation.

Objects that implement IAAFEssenceCodec2 also implement the following interfaces:

  • IAAFPlugin

Definition at line 1071 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceCodec2::CompleteWrite ( [in] IAAFSourceMob * pFileMob )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptor 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:
pFileMob [in] Optional second essence descriptor to also update
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_NULL_PARAM

  • pNumChannels is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
essenceKind | [in, ref] This is the type of essence to open
stream | [in] Here is an essence stream with the data
pNumChannels | [out] The number of channels present
HRESULT IAAFEssenceCodec2::CountDataDefinitions ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of essence data definitions supported
HRESULT IAAFEssenceCodec2::CountFlavours ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of flavours supported
HRESULT IAAFEssenceCodec2::CountSamples | ( | [in, ref] aafUID_constref | essenceKind,
 |  | [out] aafLength_t * | pNumSamples
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pNumSamples is null.
Parameters:
essenceKind | [in, ref] Tell how many samples of this type are on the mob
pNumSamples | [out] The number of samples present of the given essence kind
HRESULT IAAFEssenceCodec2::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.

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

  • pEssenceAccess 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
essenceKind | [in, ref] This is the type of essence to create
sampleRate | [in, ref] The sample rate for this essence
stream | [in] Here is an essence stream with the data
compEnable | [in] optionally compressing
HRESULT IAAFEssenceCodec2::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.

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

  • pStream or pSourceMob is null.
Parameters:
pStream | [in] A raw file stream
pSourceMob | [in] Put the finished descriptor on this source mob
HRESULT IAAFEssenceCodec2::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.

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

  • pName is null.
Parameters:
flavour | [in, ref] which flavour of the codec to use, or kNoCodecFlavour
pName | [out, string, size_is(bufSize)] Human-readable name of the flavour
bufSize | [in] length of the buffer to hold flavour Name
HRESULT IAAFEssenceCodec2::GetCurrentEssenceStream ( [out] IAAFEssenceStream ** ppStream )

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

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

AAFRESULT_NULL_PARAM

  • ppStream is null.
Parameters:
ppStream [out] The current essence stream
HRESULT IAAFEssenceCodec2::GetDefaultEssenceFormat ( [out] IAAFEssenceFormat ** ppNewFormat )

Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.

Previous systems required you to "know" what parameters a given codec could support. With this function, a client application can check what the default parameter would be, and change only those which are required. It differs from GetEssenceFormat() in that it GetEssenceFormat() returns the current client-set settings.

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

  • ppNewFormat is null.
Parameters:
ppNewFormat [out] An essence format with all valid parameter names and values filled in
HRESULT IAAFEssenceCodec2::GetEssenceDataID ( [out] aafUID_t * pEssenceDataID )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceDataID is null.
Parameters:
pEssenceDataID [out] The stored object AUID of the essence data class
HRESULT IAAFEssenceCodec2::GetEssenceDescriptorID ( [out] aafUID_t * pDescriptorID )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptorID is null.
Parameters:
pDescriptorID [out] The stored object AUID of the essence descriptor class
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormatTemplate or ppNewFormat is null.
Parameters:
pFormatTemplate | [in] An essence format object to use as a template of which fields to read
ppNewFormat | [out] A new essence format object with the data filled in
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_NULL_PARAM

  • ppDataDef is null.
Parameters:
index | [in] Which data definition to get
pDataDefID | [out] The returned dataDefinition ID
HRESULT IAAFEssenceCodec2::GetIndexedFlavourID | ( | [in] aafUInt32 | index,
 |  | [out] aafUID_t * | pVariant
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pVariant is null.

AAFRESULT_OUT_OF_RANGE

  • index must be >= 0 and < the number of flavours returned in CountFlavours().
Parameters:
index | [in] Which flavour to get the ID for
pVariant | [out] The returned flavour ID
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition describing the essence
sampleOffset | [in] The zero-based offset to get the size of
pLength | [out] The returned length of the given sample
HRESULT IAAFEssenceCodec2::GetLargestSampleSize | ( | [in, ref] aafUID_constref | essenceDefID,
 |  | [out] aafLength_t * | pLength
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition of the essence
pLength | [out] The returned length of the largest sample
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_NULL_PARAM

  • pBufSize is null.
Parameters:
pBufSize [out] length of the buffer required to hold the longest flavour Name
HRESULT IAAFEssenceCodec2::GetSelectInfo | ( | [in] IAAFSourceMob * | fileMob,
 |  | [in] IAAFEssenceStream * | stream,
 |  | [out] aafSelectInfo_t * | pSelectInfo
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pSelectInfo is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
stream | [in] Here is an essence stream with the data
pSelectInfo | [out] Information required to select by media criteria
HRESULT IAAFEssenceCodec2::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.

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

  • pEssenceAccess is null.

AAFRESULT_ESSENCE_NOT_FOUND

  • The essence could not be located inside of the current file, or by following any of the locators.
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 IAAFEssenceCodec2::PutEssenceFormat ( [in] IAAFEssenceFormat * pFormat )

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormat is null.
Parameters:
pFormat [in] An essence format object
HRESULT IAAFEssenceCodec2::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.

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_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:
nSamples | [in] Read this many samples
buflen | [in] into a buffer of this size
buffer | [out, size_is(buflen),length_is(*bytesRead)] The transfer buffer
samplesRead | [out, ref] The number of samples actually read
bytesRead | [out, ref] The number of bytes actually read
HRESULT IAAFEssenceCodec2::Seek ( [in] aafPosition_t sampleFrame )

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

  • The supplied sample offset is out of range

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)
Parameters:
sampleFrame [in] The sample frame to seek to.
HRESULT IAAFEssenceCodec2::SetEssenceAccess ( [in] IAAFEssenceAccess * pEssenceAccess )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceAccess is null.
Parameters:
pEssenceAccess [in] The associated IAAFEssenceAccess
HRESULT IAAFEssenceCodec2::SetFlavour ( [in, ref] aafUID_constref flavour )

Switches the codec into the specified flavour.

Flavour is codec dependent. For example, the DV codec could use a flavour to switch into a legacy mode causing legacy properties to be added which are needed by legacy applications.

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.)

HRESULT_NOT_IMPLEMENTED

  • flavour not implemented by the codec
Parameters:
flavour [in, ref] the codec flavour to use
HRESULT IAAFEssenceCodec2::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.

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

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

AAFRESULT_NULL_PARAM

  • pErrorText is null.
Parameters:
fileMob | [in] Run a check on this file mob
stream | [in] and this essence data stream
verbose | [in] This is the verbosity level of the output
outputWarnings | [in] This determines whether the output contains warnings
bufSize | [in] length of the buffer to hold the error result
pErrorText | [out, size_is(bufSize), length_is(*pBytesRead)] Human-readable text describing problems (or lack therof) with the essence
pBytesRead | [out] The number of result bytes returned
HRESULT IAAFEssenceCodec2::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.

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

  • buffer 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_CONTAINERWRITE

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.
Parameters:
nSamples | [in] write this many samples
buflen | [in] from a buffer of this size
buffer | [in,size_is(buflen)] from a buffer
samplesWritten | [out, ref] number of samples actually written
bytesWritten | [out, ref] number of bytes actually written


IAAFEssenceCodec3 Interface Reference

Public Member Functions
IAAFEssenceCodec3 Interface Reference

The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API. More...

List of all members.

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)
Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.
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.
HRESULT | SetFlavour ([in, ref] aafUID_constref flavour)
Switches the codec into the specified flavour.
HRESULT | IsCompressionSupported ([in] aafUID_constref compression,[out, retval] aafBoolean_t *pIsSupported)
Returns AAFTrue if the codec supports opening essence with the specified compression ID.

Detailed Description

The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API.

The AAFEssenceCodec2 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

  • One of the passed in pointers is NULL.

AAFRESULT_NOMEMORY

  • insufficient system memory is available to perform the operation.

Objects that implement IAAFEssenceCodec3 also implement the following interfaces:

  • IAAFPlugin

Definition at line 1986 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceCodec3::CompleteWrite ( [in] IAAFSourceMob * pFileMob )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptor 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:
pFileMob [in] Optional second essence descriptor to also update
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_NULL_PARAM

  • pNumChannels is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
essenceKind | [in, ref] This is the type of essence to open
stream | [in] Here is an essence stream with the data
pNumChannels | [out] The number of channels present
HRESULT IAAFEssenceCodec3::CountDataDefinitions ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of essence data definitions supported
HRESULT IAAFEssenceCodec3::CountFlavours ( [out] aafUInt32 * pCount )

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

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

AAFRESULT_NULL_PARAM

  • pCount is null.
Parameters:
pCount [out] Number of flavours supported
HRESULT IAAFEssenceCodec3::CountSamples | ( | [in, ref] aafUID_constref | essenceKind,
 |  | [out] aafLength_t * | pNumSamples
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pNumSamples is null.
Parameters:
essenceKind | [in, ref] Tell how many samples of this type are on the mob
pNumSamples | [out] The number of samples present of the given essence kind
HRESULT IAAFEssenceCodec3::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.

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

  • pEssenceAccess 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
essenceKind | [in, ref] This is the type of essence to create
sampleRate | [in, ref] The sample rate for this essence
stream | [in] Here is an essence stream with the data
compEnable | [in] optionally compressing
HRESULT IAAFEssenceCodec3::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.

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

  • pStream or pSourceMob is null.
Parameters:
pStream | [in] A raw file stream
pSourceMob | [in] Put the finished descriptor on this source mob
HRESULT IAAFEssenceCodec3::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.

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

  • pName is null.
Parameters:
flavour | [in, ref] which flavour of the codec to use, or kNoCodecFlavour
pName | [out, string, size_is(bufSize)] Human-readable name of the flavour
bufSize | [in] length of the buffer to hold flavour Name
HRESULT IAAFEssenceCodec3::GetCurrentEssenceStream ( [out] IAAFEssenceStream ** ppStream )

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

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

AAFRESULT_NULL_PARAM

  • ppStream is null.
Parameters:
ppStream [out] The current essence stream
HRESULT IAAFEssenceCodec3::GetDefaultEssenceFormat ( [out] IAAFEssenceFormat ** ppNewFormat )

Returns an essence format object specifying which contains the complete list of essence formats supported by this codec, along with the default values.

Previous systems required you to "know" what parameters a given codec could support. With this function, a client application can check what the default parameter would be, and change only those which are required. It differs from GetEssenceFormat() in that it GetEssenceFormat() returns the current client-set settings.

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

  • ppNewFormat is null.
Parameters:
ppNewFormat [out] An essence format with all valid parameter names and values filled in
HRESULT IAAFEssenceCodec3::GetEssenceDataID ( [out] aafUID_t * pEssenceDataID )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceDataID is null.
Parameters:
pEssenceDataID [out] The stored object AUID of the essence data class
HRESULT IAAFEssenceCodec3::GetEssenceDescriptorID ( [out] aafUID_t * pDescriptorID )

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

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

AAFRESULT_NULL_PARAM

  • pDescriptorID is null.
Parameters:
pDescriptorID [out] The stored object AUID of the essence descriptor class
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormatTemplate or ppNewFormat is null.
Parameters:
pFormatTemplate | [in] An essence format object to use as a template of which fields to read
ppNewFormat | [out] A new essence format object with the data filled in
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_NULL_PARAM

  • ppDataDef is null.
Parameters:
index | [in] Which data definition to get
pDataDefID | [out] The returned dataDefinition ID
HRESULT IAAFEssenceCodec3::GetIndexedFlavourID | ( | [in] aafUInt32 | index,
 |  | [out] aafUID_t * | pVariant
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pVariant is null.

AAFRESULT_OUT_OF_RANGE

  • index must be >= 0 and < the number of flavours returned in CountFlavours().
Parameters:
index | [in] Which flavour to get the ID for
pVariant | [out] The returned flavour ID
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition describing the essence
sampleOffset | [in] The zero-based offset to get the size of
pLength | [out] The returned length of the given sample
HRESULT IAAFEssenceCodec3::GetLargestSampleSize | ( | [in, ref] aafUID_constref | essenceDefID,
 |  | [out] aafLength_t * | pLength
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
Parameters:
essenceDefID | [in, ref] The ID of the data definition of the essence
pLength | [out] The returned length of the largest sample
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_NULL_PARAM

  • pBufSize is null.
Parameters:
pBufSize [out] length of the buffer required to hold the longest flavour Name
HRESULT IAAFEssenceCodec3::GetSelectInfo | ( | [in] IAAFSourceMob * | fileMob,
 |  | [in] IAAFEssenceStream * | stream,
 |  | [out] aafSelectInfo_t * | pSelectInfo
 | ) |  |

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

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

AAFRESULT_NULL_PARAM

  • pSelectInfo is null.
Parameters:
fileMob | [in] Get the number of processable channels on this file mob
stream | [in] Here is an essence stream with the data
pSelectInfo | [out] Information required to select by media criteria
HRESULT IAAFEssenceCodec3::IsCompressionSupported | ( | [in] aafUID_constref | compression,
 |  | [out, retval] aafBoolean_t * | pIsSupported
 | ) |  |

Returns AAFTrue if the codec supports opening essence with the specified compression ID.

Succeeds if all of the following are true:

  • the pIsSupported pointer is valid.

If this method fails nothing will be written to *pIsSupported.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pIsSupported is null.
Parameters:
compression | [in] The compression to test for support
pIsSupported | [out,retval] Is this compression supported
HRESULT IAAFEssenceCodec3::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.

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

  • pEssenceAccess is null.

AAFRESULT_ESSENCE_NOT_FOUND

  • The essence could not be located inside of the current file, or by following any of the locators.
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 IAAFEssenceCodec3::PutEssenceFormat ( [in] IAAFEssenceFormat * pFormat )

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

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

AAFRESULT_ILLEGAL_FILEFMT

  • One of the format codes is not supported by this codec. Call GetDefaultEssenceFormat() in order to find the list of supported format codes. No data will have been transferred.

AAFRESULT_INVALID_PARM_SIZE

  • The data supplied with the parameter is not of the correct size. No data will have been transferred.

AAFRESULT_NULL_PARAM

  • pFormat is null.
Parameters:
pFormat [in] An essence format object
HRESULT IAAFEssenceCodec3::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.

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_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:
nSamples | [in] Read this many samples
buflen | [in] into a buffer of this size
buffer | [out, size_is(buflen),length_is(*bytesRead)] The transfer buffer
samplesRead | [out, ref] The number of samples actually read
bytesRead | [out, ref] The number of bytes actually read
HRESULT IAAFEssenceCodec3::Seek ( [in] aafPosition_t sampleFrame )

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

  • The supplied sample offset is out of range

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)
Parameters:
sampleFrame [in] The sample frame to seek to.
HRESULT IAAFEssenceCodec3::SetEssenceAccess ( [in] IAAFEssenceAccess * pEssenceAccess )

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

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

AAFRESULT_NULL_PARAM

  • pEssenceAccess is null.
Parameters:
pEssenceAccess [in] The associated IAAFEssenceAccess
HRESULT IAAFEssenceCodec3::SetFlavour ( [in, ref] aafUID_constref flavour )

Switches the codec into the specified flavour.

Flavour is codec dependent. For example, the DV codec could use a flavour to switch into a legacy mode causing legacy properties to be added which are needed by legacy applications.

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.)

HRESULT_NOT_IMPLEMENTED

  • flavour not implemented by the codec
Parameters:
flavour [in, ref] the codec flavour to use
HRESULT IAAFEssenceCodec3::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.

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

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

AAFRESULT_NULL_PARAM

  • pErrorText is null.
Parameters:
fileMob | [in] Run a check on this file mob
stream | [in] and this essence data stream
verbose | [in] This is the verbosity level of the output
outputWarnings | [in] This determines whether the output contains warnings
bufSize | [in] length of the buffer to hold the error result
pErrorText | [out, size_is(bufSize), length_is(*pBytesRead)] Human-readable text describing problems (or lack therof) with the essence
pBytesRead | [out] The number of result bytes returned
HRESULT IAAFEssenceCodec3::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.

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

  • buffer 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_CONTAINERWRITE

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.
Parameters:
nSamples | [in] write this many samples
buflen | [in] from a buffer of this size
buffer | [in,size_is(buflen)] from a buffer
samplesWritten | [out, ref] number of samples actually written
bytesWritten | [out, ref] number of bytes actually written


IAAFEssenceContainer Interface Reference

Public Member Functions
IAAFEssenceContainer Interface Reference

This interface is used to access essence data in an external data file. More...

List of all members.

Public Member Functions

HRESULT | CreateEssenceStream ([in, string] aafCharacter_constptr pName,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream)
Attempt to create an essence stream in the container for reading and writing.
HRESULT | CreateEssenceStreamWriteOnly ([in, string] aafCharacter_constptr pPath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream)
Attempt to create an essence stream in the container for writing.
HRESULT | OpenEssenceStreamReadOnly ([in, string] aafCharacter_constptr pFilePath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream)
Attempt to open an essence stream for reading.
HRESULT | OpenEssenceStreamAppend ([in, string] aafCharacter_constptr pFilePath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream)
Attempt to open an essence stream for appending.

Detailed Description

This interface is used to access essence data in an external data file.

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

  • insufficient system memory is available to perform the operation.

Definition at line 2914 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceContainer::CreateEssenceStream | ( | [in, string] aafCharacter_constptr | pName,
 |  | [in] aafMobID_constptr | pMobID,
 |  | [out, retval] IAAFEssenceStream ** | ppEssenceStream
 | ) |  |

Attempt to create an essence stream in the container for reading and writing.

Returns one of the following:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • both pName and pMobID cannot be NULL.

AAFRESULT_ILLEGAL_VALUE

  • pName or pMobID (or both) are invalid

AAFRESULT_FILE_EXISTS

  • the given path and or mobID already points to an existing stream within the container.
Parameters:
pName | [in, string] String key to identify the new essence within container
pMobID | [in] Optional mobID identifying the essence
ppEssenceStream | [out, retval] address of local variable to contain the essence stream pointer.
HRESULT IAAFEssenceContainer::CreateEssenceStreamWriteOnly | ( | [in, string] aafCharacter_constptr | pPath,
 |  | [in] aafMobID_constptr | pMobID,
 |  | [out, retval] IAAFEssenceStream ** | ppEssenceStream
 | ) |  |

Attempt to create an essence stream in the container for writing.

Returns one of the following:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • both pName and pMobID cannot be NULL.

AAFRESULT_ILLEGAL_VALUE

  • pName or pMobID (or both) are invalid

AAFRESULT_FILE_EXISTS

  • the given path and or mobID already points to an existing stream within the container.
Parameters:
pPath | [in, string] String key to identify the new essence within container
pMobID | [in] Optional mobID identifying the essence
ppEssenceStream | [out, retval] address of local variable to contain the essence stream pointer.
HRESULT IAAFEssenceContainer::OpenEssenceStreamAppend | ( | [in, string] aafCharacter_constptr | pFilePath,
 |  | [in] aafMobID_constptr | pMobID,
 |  | [out, retval] IAAFEssenceStream ** | ppEssenceStream
 | ) |  |

Attempt to open an essence stream for appending.

Returns one of the following:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • both pName and pMobID cannot be NULL.

AAFRESULT_ILLEGAL_VALUE

  • pName or pMobID (or both) are invalid

AAFRESULT_MEDIA_NOT_FOUND

  • the given path does not point to an existing stream within the container.

AAFRESULT_NOT_WRITEABLE

  • stream is read-only, cannot be opened for writing.
Parameters:
pFilePath | [in, string] String key to identify the existing essence within container
pMobID | [in] Optional mobID identifying the essence
ppEssenceStream | [out, retval] address of local variable to contain the essence stream pointer.
HRESULT IAAFEssenceContainer::OpenEssenceStreamReadOnly | ( | [in, string] aafCharacter_constptr | pFilePath,
 |  | [in] aafMobID_constptr | pMobID,
 |  | [out, retval] IAAFEssenceStream ** | ppEssenceStream
 | ) |  |

Attempt to open an essence stream for reading.

Returns one of the following:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • both pName and pMobID cannot be NULL.

AAFRESULT_ILLEGAL_VALUE

  • pName or pMobID (or both) are invalid

AAFRESULT_MEDIA_NOT_FOUND

  • the given path does not point to an existing stream within the container.

AAFRESULT_NOT_READABLE

  • stream is write-only, cannot be opened for reading.
Parameters:
pFilePath | [in, string] String key to identify the existing essence within container
pMobID | [in] Optional mobID identifying the essence
ppEssenceStream | [out, retval] address of local variable to contain the essence stream pointer.


IAAFEssenceDataStream Interface Reference

Public Member Functions
IAAFEssenceDataStream Interface Reference

The IAAFEssenceDataStream interface is an additional interface implemented by objects which stream over AAF files, and were therefore created by the AAFContainerDef for AAF files. More...

List of all members.

Public Member Functions

HRESULT Init ([in] IUnknown *essenceData)
Init the stream over a particular EssenceData.

Detailed Description

The IAAFEssenceDataStream interface is an additional interface implemented by objects which stream over AAF files, and were therefore created by the AAFContainerDef for AAF files.

This interface allows the setting of one additional parameter (a pointer to the AAFEssenceData object to stream over) which was not general-purpose enough to be in the IAAFEssenceStream interface.

Objects which support this interface must be created by methods in IAAFContainerDef, since the container definition is what is used to differentiate between the different streams. If the stream needs a reference to data other than a file pointer (ex. the AAFContainer makes a stream which needs a reference to a structureed storage stream) will have another interface to support the additional behaviour. For an AAF container, the additional interface is IAAFEssenceDataStream.

The following has been copied from the IAAFEssenceStream interface: The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence. There are multiple classes implementing this interface, each representing a different underlying container holding the essence data. The idea of "container" is separate from any formatting such as WAVE or JPEG. Examples of containers (and therefore streams), are essence embedded in AAF files, and essence in a file all by itself (ex. a WAVE file).

Definition at line 3082 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceDataStream::Init ( [in] IUnknown * essenceData )

Init the stream over a particular EssenceData.

Parameters:
essenceData [in] The EssenceData to stream over


IAAFEssenceDataStream2 Interface Reference

Public Member Functions
IAAFEssenceDataStream2 Interface Reference

The IAAFEssenceDataStream2 interface is an additional interface implemented by objects which stream over AAF and MXF files. More...

List of all members.

Public Member Functions

HRESULT | Init ([in] IUnknown *essenceData)
Init the stream over a particular EssenceData.
HRESULT | GetEssenceData ([out, retval] IAAFEssenceData **ppEssenceData)
Returns the EssenceData with which the EssenceDataStream2 was initialized, in.
HRESULT | SetEssenceElementKey ([in, ref] aafUID_constref eek,[in] aafUInt8 eeKind,[in] aafUInt8 eeCount,[in] aafUInt8 eeType,[in] aafUInt8 eeIndex,[in] aafSlotID_t sourceSlotID)
Set the essence element key on the essence stream and optionally sets the Physical Track Number on a slot of the associated File Mob.
HRESULT | GetEssenceElementKey ([out] aafUID_t *pEssenceElementKey)
This method returns the essence element key associated with the essence stream.

Detailed Description

The IAAFEssenceDataStream2 interface is an additional interface implemented by objects which stream over AAF and MXF files.

This interface allows the setting of a pointer to the AAFEssenceData object over which to stream, and the setting of the EssenceElementKey for use in MXF essence containers. These functions are specific to Essence streams inside AAF and MXF files, and are not general-purpose enough for the IAAFEssenceStream interface.

Objects which support this interface should be created by methods in IAAFEssenceContainer, since the container definition is what differentiates between different streams. However, in the absence of a reflexive plugin IAAFEssenceContainer for AAF and MXF, IAAFEssenceAccess directly creates objects inside the current AAF file.

IAAFEssenceDataStream2 implements the methods of IAAFEssenceDataStream in addition to its own new methods

The following text originates from the IAAFEssenceStream interface: The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence. There are multiple classes implementing this interface, each representing a different underlying container holding the essence data. The idea of "container" is separate from any formatting such as WAVE or JPEG. Examples of containers (and therefore streams), are essence embedded in AAF files, and essence in a file all by itself (ex. a WAVE file).

Objects which support this interface must be created by methods in IAAFEssenceContainer, since the container definition is what differentiates between different streams. If the stream needs a reference to data other than a file pointer (ex. the AAFContainer makes a stream which needs a reference to a structureed storage stream) it will have another interface to support the additional behaviour. For an AAF container, the additional interface is IAAFEssenceDataStream or IAAFEssenceDataStream2.

Definition at line 3146 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceDataStream2::GetEssenceData ( [out, retval] IAAFEssenceData ** ppEssenceData )

Returns the EssenceData with which the EssenceDataStream2 was initialized, in.

the ppEssenceData argument. The returned EssenceData interface is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppEssenceData pointer is valid.

If this method fails nothing will be written to *ppEssenceData.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • ppEssenceData is null.
    Parameters:
    ppEssenceData [out,retval] The EssenceData this stream applies to
HRESULT IAAFEssenceDataStream2::GetEssenceElementKey ( [out] aafUID_t * pEssenceElementKey )

This method returns the essence element key associated with the essence stream.

Succeeds if all of the following are true:

  • pEssenceElementKey is a valid pointer.
  • the essence stream supports essence element keys.

If this method fails nothing will be written to *pEssenceElementKey.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NOT_INITIALIZED

  • This object has not yet had Initialize() called on it.

AAFRESULT_NULL_PARAM

  • pEssenceElementKey arg is NULL.

AAFRESULT_OPERATION_NOT_PERMITTED

  • the essence stream does not support essence element keys.
Parameters:
pEssenceElementKey [out] Essence element key.
HRESULT IAAFEssenceDataStream2::Init ( [in] IUnknown * essenceData )

Init the stream over a particular EssenceData.

Parameters:
essenceData [in] The EssenceData to stream over
HRESULT IAAFEssenceDataStream2::SetEssenceElementKey | ( | [in, ref] aafUID_constref | eek,
 |  | [in] aafUInt8 | eeKind,
 |  | [in] aafUInt8 | eeCount,
 |  | [in] aafUInt8 | eeType,
 |  | [in] aafUInt8 | eeIndex,
 |  | [in] aafSlotID_t | sourceSlotID
 | ) |  |

Set the essence element key on the essence stream and optionally sets the Physical Track Number on a slot of the associated File Mob.

If the EssenceStream does not support essence element keys, does not update the Physical Num, fails gracefully and returns AAFRESULT_OPERATION_NOT_PERMITTED this is NOT an error

If the Essence Element Key input parameter is NULL, uses SMPTE 379M Generic Container keys

Constructs the 4 least significant bytes of the essence element key from the parameters kind - essence kind (ex. 0x15 for GC Picture - refer to SMPTE 379M) count - essence count (normally 1 for mono essence) type - essence type (ex. 0x0D for VC-3 clip-wrapped - refer to essence mapping documents) index - integer from 1 up to count (normally 1 for mon essence) if any of these is zero, does not override the 4 least significant bytes of the essence element key

If the sourceSlotID input parameter is not 0, sets thte PhysicalNum of that slot to match the 4 least significant bytes of the essence element key

Succeeds if all of the following are true:

  • the essence stream supports essence element keys.

If this method fails, the property will not be changed.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NOT_INITIALIZED

  • This object has not yet had Initialize() called on it.

AAFRESULT_OPERATION_NOT_PERMITTED

  • the essence stream does not support essence element keys.
Parameters:
eek | [in, ref] essence element key
eeKind | [in] Generic Container essence kind
eeCount | [in] Generic Container essence element count
eeType | [in] Generic Container essence element type
eeIndex | [in] Generic Container essence element index
sourceSlotID | [in] Slot ID of the Source Mob slot to be adjusted


IAAFEssenceStream Interface Reference

Public Member Functions
IAAFEssenceStream Interface Reference

The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence. More...

List of all members.

Public Member Functions

HRESULT | Write ([in] aafUInt32 bytes,[out, size_is(bytes)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *bytesWritten)
Write some number of bytes to the stream exactly and with no formatting or compression.
HRESULT | Read ([in] aafUInt32 buflen,[out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t pBuffer,[out, ref] aafUInt32 *pBytesRead)
Read some number of bytes from the stream exactly and with no formatting or compression.
HRESULT | Seek ([in] aafPosition_t byteOffset)
Seek to the absolute byte offset into the stream.
HRESULT | SeekRelative ([in] aafInt32 byteOffset)
This method should return only the following codes.
HRESULT | GetPosition ([out] aafPosition_t *pPosition)
Returns the position within the stream.
HRESULT | GetLength ([out] aafLength_t *pLength)
Returns the length of the stream.
HRESULT | FlushCache ()
NOTE: Methods which help support optional buffering or caching of the essence data.
HRESULT | SetCacheSize ([in] aafUInt32 itsSize)
Sets the size of the cache buffer used for further operations.

Detailed Description

The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence.

There are multiple classes implementing this interface, each representing a different underlying container holding the essence data. The idea of "container" is separate from any formatting such as WAVE or JPEG. Examples of containers (and therefore streams), are essence embedded in AAF files, and essence in a file all by itself (ex. a WAVE file).

Objects which support this interface must be created by methods in IAAFContainerDef, since the container definition is what is used to differentiate between the different streams. If the stream needs a reference to data other than a file pointer (ex. the AAFContainer makes a stream which needs a reference to a structureed storage stream) will have another interface to support the additional behaviour. For an AAF container, the additional interface is IAAFEssenceDataStream.

NOTE: The SDK will init the representation of this object with the correct path and open the underlying file before handing out an interface pointer. Hence, there is no Open method on the stream.

Definition at line 3318 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFEssenceStream::FlushCache ( )

NOTE: Methods which help support optional buffering or caching of the essence data.

Caching is not required to be supported, and may actually reduce performance. on some platforms. If your stream does not support caching, then return AAFRESULT_SUCCESS for these calls. Ensure that all bits are written. The caller of this interface is required to call FlushCache before releasing the 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

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

AAFRESULT_STREAM_FULL

  • The essence can not be written because of a fault such as a disk full error in the underlying operating system.
HRESULT IAAFEssenceStream::GetLength ( [out] aafLength_t * pLength )

Returns the length of the 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

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

AAFRESULT_NULL_PARAM

  • pLength is null.
    Parameters:
    pLength [out] The length of the stream.
HRESULT IAAFEssenceStream::GetPosition ( [out] aafPosition_t * pPosition )

Returns the position within the 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

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

AAFRESULT_NULL_PARAM

  • pPosition is null.
    Parameters:
    pPosition [out] The position within the stream.
HRESULT IAAFEssenceStream::Read | ( | [in] aafUInt32 | buflen,
 |  | [out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t | pBuffer,
 |  | [out, ref] aafUInt32 * | pBytesRead
 | ) |  |

Read some number of bytes from the stream exactly and with no formatting or compression.

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

  • pBuffer or pBytesRead is null.

AAFRESULT_END_OF_ESSENCE

  • Hit either the end-of-file on a raw essence file, or the end of the essence property. The pBytesRead parameter correctly reflects the number of bytes actually read.
    Parameters:
    buflen | [in] to a buffer of this size
    pBuffer | [out, size_is(buflen), length_is(*pBytesRead)] here is the buffer
    pBytesRead | [out,ref] Return bytes actually read
HRESULT IAAFEssenceStream::Seek ( [in] aafPosition_t byteOffset )

Seek to the absolute byte offset into the stream.

Parameters:
byteOffset [in] The absolute byte offset into the stream.
HRESULT IAAFEssenceStream::SeekRelative ( [in] aafInt32 byteOffset )

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_STREAM_BOUNDS

  • The new position would be outside of the bounds of the stream.) Seek forward or backward the given byte count. 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_STREAM_BOUNDS

  • The new position would be outside of the bounds of the stream.
    Parameters:
    byteOffset [in] The relative byte offset into the stream.
HRESULT IAAFEssenceStream::SetCacheSize ( [in] aafUInt32 itsSize )

Sets the size of the cache buffer used for further operations.

Destroys the current contents of the cache. 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.)
    Parameters:
    itsSize [in] The size of the cache buffer. Zero is a valid size, and means to turn caching off
HRESULT IAAFEssenceStream::Write | ( | [in] aafUInt32 | bytes,
 |  | [out, size_is(bytes)] aafDataBuffer_t | buffer,
 |  | [out, ref] aafUInt32 * | bytesWritten
 | ) |  |

Write some number of bytes to the stream exactly and with no formatting or compression.

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

  • pBuffer or pBytesRead 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:
    bytes | [in] the number of bytes to write
    buffer | [out, size_is(bytes)] the buffer that contains at least bytes
    bytesWritten | [out,ref] the number of bytes actually written from the buffer


IAAFInterpolator Interface Reference

Public Member Functions
IAAFInterpolator Interface Reference

The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue. More...

List of all members.

Public Member Functions

HRESULT | GetNumTypesSupported ([out] aafUInt32 *pCount)
Each interpolator plugin will support a given number of interpolator.
HRESULT | GetIndexedSupportedType ([in] aafUInt32 index,[out] IAAFTypeDef **ppType)
Each interpolator plugin will support a given number of interpolator.
HRESULT | GetTypeDefinition ([out] IAAFTypeDef **ppTypeDef)
Places the data definition object attached to this interpolator into the ppTypeDef argument.
HRESULT | SetTypeDefinition ([in] IAAFTypeDef *pTypeDef)
Sets the data definition of this interpolator to be the given one.
HRESULT | GetParameter ([out] IAAFParameter **ppParameter)
Places the parameter object attached to this interpolator into the ppParameter argument.
HRESULT | SetParameter ([in] IAAFParameter *pParameter)
Sets the parmeter of this interpolator to be the given one.
HRESULT | InterpolateOne ([in] aafRational_t *pInputValue,[in] aafUInt32 valueSize,[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t pValue,[out] aafUInt32 *bytesRead)
Interpolates between known control points on the value, and.
HRESULT | InterpolateMany ([in] aafRational_t *pStartInputValue,[in] aafRational_t *pInputStep,[in] aafUInt32 generateCount,[out] aafMemPtr_t pOutputValue,[out] aafUInt32 *pResultCount)
Interpolates between known control points on the value, and.

Detailed Description

The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue.

There will be one InterpolatorDefinition for each method of interpolation (ex: Step, Linear, Log) supported, so that the SDK can call GetIndexedSupportedType() repeatedly in order to find out what types this interpolator suppports.

The AAFPluginManager keeps a copy of each interpolator in a table, along with cached copies of pertinant metadata about the interpolator.

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

  • insufficient system memory is available to perform the operation. Objects that implement IAAFInterpolator also implement the following interfaces:

IAAFPlugin

Definition at line 3552 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFInterpolator::GetIndexedSupportedType | ( | [in] aafUInt32 | index,
 |  | [out] IAAFTypeDef ** | ppType
 | ) |  |

Each interpolator plugin will support a given number of interpolator.

types for a given number of data types. This call returns one of the data types supported using an index. The index value should be between 0 and one less than the value returned by GetNumTypesSupported(). The number of flavours is returned by GetNumTypesSupported(), and cached by the AAFPluginManager.

An interpolator is expected to support all data types for each interpolation method which the interpolator supports.

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

  • pVariant is null.

AAFRESULT_OUT_OF_RANGE

  • index must be >= 0 and < the number of flavours returned in GetNumTypesSupported().
    Parameters:
    index | [in] Which flavour to get the ID for
    ppType | [out] The returned type definition
HRESULT IAAFInterpolator::GetNumTypesSupported ( [out] aafUInt32 * pCount )

Each interpolator plugin will support a given number of interpolator.

types for a given number of data types. This call returns the number of data types supported, so that the SDK can call GetIndexedSupportedType() repeatedly in order to find out what types this interpolator suppports.

An interpolator is expected to support all data types for each interpolation method which the interpolator supports.

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

  • pCount is null.
    Parameters:
    pCount [out] Number of data types supported
HRESULT IAAFInterpolator::GetParameter ( [out] IAAFParameter ** ppParameter )

Places the parameter object attached to this interpolator into the ppParameter argument.

If none exists yet, NULL is placed into the ppParameter argument.

The returned parameter object, if it exists, is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppParameter pointer is valid.
  • A valid data definition exists.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • ppParameter is null.
Parameters:
ppParameter [out] Returned data definition object
HRESULT IAAFInterpolator::GetTypeDefinition ( [out] IAAFTypeDef ** ppTypeDef )

Places the data definition object attached to this interpolator into the ppTypeDef argument.

If none exists yet, NULL is placed into the ppTypeDef argument.

The returned data definition object, if it exists, is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppTypeDef pointer is valid.
  • A valid data definition exists.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • ppTypeDef is null.
Parameters:
ppTypeDef [out] Returned data definition object
HRESULT IAAFInterpolator::InterpolateMany | ( | [in] aafRational_t * | pStartInputValue,
 |  | [in] aafRational_t * | pInputStep,
 |  | [in] aafUInt32 | generateCount,
 |  | [out] aafMemPtr_t | pOutputValue,
 |  | [out] aafUInt32 * | pResultCount
 | ) |  |

Interpolates between known control points on the value, and.

creates an array of new AAFControlPoint which which can be imagined to exist at the given inputValue. While InterpolateOne() generates a single point, this function starts at a given offset and generates interpolations until either generateCount is reached, or the next result would have an input value of greater than one. Succeeds if all of the following are true:

  • the pInputValue pointer is valid.
  • the pInputStep pointer is valid.
  • the ppOutputValue pointer is valid.
  • the pResultCount pointer is valid.
  • The input value is between 0 (effect start), to 1 (effect end) inclusive.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_INPUT_RANGE

  • The input value must be between 0 and 1, inclusive.

AAFRESULT_NULL_PARAM

  • pInputValue or ppOutputValue or pInputStep or pResultCount is null.
Parameters:
pStartInputValue | [in] Input values are from 0 (effect start), to 1 (effect end) inclusive.
pInputStep | [in] Amount to add to *pStartInputValue to get the next point to interpolate
generateCount | [in] The number of points to interpolate
pOutputValue | [out] an array of generated control points
pResultCount | [out] The number of points actually generated
HRESULT IAAFInterpolator::InterpolateOne | ( | [in] aafRational_t * | pInputValue,
 |  | [in] aafUInt32 | valueSize,
 |  | [out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t | pValue,
 |  | [out] aafUInt32 * | bytesRead
 | ) |  |

Interpolates between known control points on the value, and.

creates a new AAFControlPoint which which can be imagined to exist at the given inputValue. Succeeds if all of the following are true:

  • the pInputValue pointer is valid.
  • the ppOutputValue pointer is valid.
  • The input value is between 0 (effect start), to 1 (effect end) inclusive.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_INPUT_RANGE

  • The input value must be between 0 and 1, inclusive.

AAFRESULT_NULL_PARAM

  • pInputValue or ppOutputValue is null.
Parameters:
pInputValue | [in] Input values are from 0 (effect start), to 1 (effect end) inclusive.
valueSize | [in] Size of preallocated buffer
pValue | [out, size_is(valueSize),length_is(*bytesRead)] A generated control point
bytesRead | [out] The number of bytes actually transferred
HRESULT IAAFInterpolator::SetParameter ( [in] IAAFParameter * pParameter )

Sets the parmeter of this interpolator to be the given one.

Succeeds if all of the following are true:

  • the pParameter pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pParameter is null.
Parameters:
pParameter [in] Parameter object
HRESULT IAAFInterpolator::SetTypeDefinition ( [in] IAAFTypeDef * pTypeDef )

Sets the data definition of this interpolator to be the given one.

Succeeds if all of the following are true:

  • the pTypeDef pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pTypeDef is null.
Parameters:
pTypeDef [in] Data definition object


IAAFMultiEssenceCodec Interface Reference

Public Member Functions
IAAFMultiEssenceCodec Interface Reference

The AAFMultiEssenceCodec interface describes the calls of a plugin which handles encoding media in a particular file format, with optional compression. More...

List of all members.

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.

Detailed Description

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

  • One of the passed in pointers is NULL.

AAFRESULT_NOMEMORY

  • insufficient system memory is available to perform the operation. Objects that implement IAAFMultiEssenceCodec also implement the following interfaces:

IAAFPlugin

Definition at line 3861 of file AAFPlugin.idl.

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


IAAFPlugin Interface Reference

Public Member Functions
IAAFPlugin Interface Reference

The AAFPlugin interface describes the calls of a plugin. More...

List of all members.

Public Member Functions

HRESULT | CountDefinitions ([out] aafUInt32 *pDefCount)
This method returns the number of subclasses of AAFDefObject associated with this plugin,.
HRESULT | GetIndexedDefinitionID ([in] aafUInt32 index,[out] aafUID_t *pPluginID)
This method returns the unique ID of the AAFDefObject associated with this Plugin.
HRESULT | GetPluginDescriptorID ([out] aafUID_t *pPluginID)
This method returns the unique ID of the AAFPluginDescriptor associated with this Plugin.
HRESULT | GetIndexedDefinitionObject ([in] aafUInt32 index,[in] IAAFDictionary *pDictionary,[out] IAAFDefObject **pDefObject)
This method manufactures a definition object of the correct class for this plugin, and fills in the values.
HRESULT | CreateDescriptor ([in] IAAFDictionary *pDictionary,[out] IAAFPluginDef **pPluginDef)
This method manufactures a plugin descriptor of the correct class for this plugin, and fills in the values.

Detailed Description

The AAFPlugin interface describes the calls of a plugin.

The AAFPluginManager keeps a copy of each plugin in a table, along with cached copies of pertinant metadata about the plugin, and instantiates a copy of the plugin.

Definition at line 4076 of file AAFPlugin.idl.

Member Function Documentation

HRESULT IAAFPlugin::CountDefinitions ( [out] aafUInt32 * pDefCount )

This method returns the number of subclasses of AAFDefObject associated with this plugin,.

and will be called once at startup by the plugin manager. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. If this method fails nothing will be written to *pDefCount.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pDefCount arg is NULL.
Parameters:
pDefCount [out] The number of definitions associated with this plugin
HRESULT IAAFPlugin::CreateDescriptor | ( | [in] IAAFDictionary * | pDictionary,
 |  | [out] IAAFPluginDef ** | pPluginDef
 | ) |  |

This method manufactures a plugin descriptor of the correct class for this plugin, and fills in the values.

You must call QueryInterface on the result in order to find the corret interface. The dictionary supplied should be for the file where the descriptor will go, but the descriptor will not be added to the file by this function. The supplied dictionary also needs no former knowledge of the new descriptor. This function will be called by the plugin manager in order to add the correct plugin descriptors to a file.

Succeeds if all of the following are true:

  • the pPluginDef pointer is valid.

If this method fails nothing will be written to *pPluginDef.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pPluginDef arg is NULL.
Parameters:
pDictionary | [in] The dictionary to use when creating the descriptor
pPluginDef | [out] The interface of the pluggable definition
HRESULT IAAFPlugin::GetIndexedDefinitionID | ( | [in] aafUInt32 | index,
 |  | [out] aafUID_t * | pPluginID
 | ) |  |

This method returns the unique ID of the AAFDefObject associated with this Plugin.

This range of indices will be from 0 to one less than the total number of codecs, operation groups, classes, types, containers, etc.. implemented by this plugin. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. Succeeds if all of the following are true:

  • the pPluginID pointer is valid.
  • Index is within range.

If this method fails nothing will be written to *pPluginID.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pPluginID arg is NULL.

AAFRESULT_INDEX_RANGE

  • The index value is out of range
Parameters:
index | [in] An index from 0 to the number of definitions - 1
pPluginID | [out] The unique media object id
HRESULT IAAFPlugin::GetIndexedDefinitionObject | ( | [in] aafUInt32 | index,
 |  | [in] IAAFDictionary * | pDictionary,
 |  | [out] IAAFDefObject ** | pDefObject
 | ) |  |

This method manufactures a definition object of the correct class for this plugin, and fills in the values.

You must call QueryInterface on the result in order to find the correct interface. The dictionary supplied should be for the file where the definition will go, but the definition will not be added to the file by this function. The supplied dictionary also needs no former knowledge of the new definition. This function will be called by the plugin manager in order to add the correct definition objects to a file. A non-zero index is used when a single piece of code implements more than one definition, which is not to be confused with multiple plugin interfaces existing in a single plugin file. An example where an index other than one would be useful is an interpolator which implements multiple types of interpolation (ex. linear, constant, etc...), but has one entry point for all types. Codecs will have only one definition per interface, but may have many interfaces clumped together into a single file. Succeeds if all of the following are true:

  • the pDefObject pointer is valid.

If this method fails nothing will be written to *pDefObject.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pDefObject arg is NULL.
Parameters:
index | [in] An index from 0 to the number of definitions - 1
pDictionary | [in] The dictionary to use when creating the definition
pDefObject | [out] The interface of the pluggable definition
HRESULT IAAFPlugin::GetPluginDescriptorID ( [out] aafUID_t * pPluginID )

This method returns the unique ID of the AAFPluginDescriptor associated with this Plugin.

This method is called by the plugin manager to determine if a particular plugin descriptor (indicating a particular plugin) is already in the current file, so that the full create function does not need to be called.

Succeeds if all of the following are true:

  • the pPluginID pointer is valid.

If this method fails nothing will be written to *pPluginID.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

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

AAFRESULT_NULL_PARAM

  • pPluginID arg is NULL.
Parameters:
pPluginID [out] The unique media object id


IAAFPluginTypes Interface Reference

IAAFPluginTypes Interface Reference

List of all members.

Classes

struct | _aafSelectInfo_t

Public Types

enum | _aafDeinterleave_e { kAAFdeinterleave, kAAFleaveInterleaved }
enum | _aafCheckVerbose_e { kAAFCheckVerbose, kAAFCheckQuiet }
enum | _aafCheckWarnings_e { kAAFCheckPrintWarnings, kAAFCheckNoWarnings }
typedef aafInt32 | aafDeinterleave_t
typedef enum
IAAFPluginTypes::_aafDeinterleave_e 		aafDeinterleave_e
typedef aafInt32 | aafCheckVerbose_t
typedef enum
IAAFPluginTypes::_aafCheckVerbose_e 		aafCheckVerbose_e
typedef aafInt32 | aafCheckWarnings_t
typedef enum
IAAFPluginTypes::_aafCheckWarnings_e 		aafCheckWarnings_e
typedef struct
IAAFPluginTypes::_aafSelectInfo_t 		aafSelectInfo_t

Detailed Description

Definition at line 51 of file AAFPluginTypes.idl.

Member Typedef Documentation

typedef enum IAAFPluginTypes::_aafCheckVerbose_e IAAFPluginTypes::aafCheckVerbose_e
typedef aafInt32 IAAFPluginTypes::aafCheckVerbose_t

Definition at line 61 of file AAFPluginTypes.idl.

typedef enum IAAFPluginTypes::_aafCheckWarnings_e IAAFPluginTypes::aafCheckWarnings_e
typedef aafInt32 IAAFPluginTypes::aafCheckWarnings_t

Definition at line 68 of file AAFPluginTypes.idl.

typedef enum IAAFPluginTypes::_aafDeinterleave_e IAAFPluginTypes::aafDeinterleave_e
typedef aafInt32 IAAFPluginTypes::aafDeinterleave_t

Definition at line 54 of file AAFPluginTypes.idl.

typedef struct IAAFPluginTypes::_aafSelectInfo_t IAAFPluginTypes::aafSelectInfo_t

Member Enumeration Documentation

enum IAAFPluginTypes::_aafCheckVerbose_e
Enumerator:
kAAFCheckVerbose
kAAFCheckQuiet

Definition at line 62 of file AAFPluginTypes.idl.

enum IAAFPluginTypes::_aafCheckWarnings_e
Enumerator:
kAAFCheckPrintWarnings
kAAFCheckNoWarnings

Definition at line 69 of file AAFPluginTypes.idl.

enum IAAFPluginTypes::_aafDeinterleave_e
Enumerator:
kAAFdeinterleave
kAAFleaveInterleaved

Definition at line 55 of file AAFPluginTypes.idl.


Class Members

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • _
  • a
  • c
  • f
  • g
  • h
  • i
  • k
  • m
  • o
  • p
  • r
  • s
  • v
  • w
Here is a list of all class members with links to the classes they belong to:

- _ -

  • _aafCheckVerbose_e : IAAFPluginTypes
  • _aafCheckWarnings_e : IAAFPluginTypes
  • _aafDeinterleave_e : IAAFPluginTypes

- a -

  • aafCheckVerbose_e : IAAFPluginTypes
  • aafCheckVerbose_t : IAAFPluginTypes
  • aafCheckWarnings_e : IAAFPluginTypes
  • aafCheckWarnings_t : IAAFPluginTypes
  • aafDeinterleave_e : IAAFPluginTypes
  • aafDeinterleave_t : IAAFPluginTypes
  • aafSelectInfo_t : IAAFPluginTypes
  • avgBitsPerSec : IAAFPluginTypes::_aafSelectInfo_t

- c -

  • CompleteWrite() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountChannels() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountDataDefinitions() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • CountDefinitions() : IAAFPlugin
  • CountFlavours() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountSamples() : IAAFEssenceCodec3 , IAAFEssenceCodec2 , IAAFEssenceCodec
  • Create() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CreateDescriptor() : IAAFPlugin
  • CreateDescriptorFromStream() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CreateEssenceStream() : IAAFEssenceContainer
  • CreateEssenceStreamWriteOnly() : IAAFEssenceContainer

- f -

  • FlushCache() : IAAFEssenceStream

- g -

  • GetCodecDisplayName() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetCurrentEssenceStream() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetDefaultEssenceFormat() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • GetEssenceData() : IAAFEssenceDataStream2
  • GetEssenceDataID() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetEssenceDescriptorID() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetEssenceElementKey() : IAAFEssenceDataStream2
  • GetEssenceFormat() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetIndexedDataDefinition() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetIndexedDefinitionID() : IAAFPlugin
  • GetIndexedDefinitionObject() : IAAFPlugin
  • GetIndexedFlavourID() : IAAFEssenceCodec2 , IAAFEssenceCodec , IAAFEssenceCodec3
  • GetIndexedSampleSize() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetIndexedSupportedType() : IAAFInterpolator
  • GetLargestSampleSize() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetLength() : IAAFEssenceStream
  • GetMaxCodecDisplayNameLength() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetNumTypesSupported() : IAAFInterpolator
  • GetParameter() : IAAFInterpolator
  • GetPluginDescriptorID() : IAAFPlugin
  • GetPosition() : IAAFEssenceStream
  • GetSelectInfo() : IAAFEssenceCodec2 , IAAFEssenceCodec , IAAFEssenceCodec3
  • GetTypeDefinition() : IAAFInterpolator

- h -

  • hwAssisted : IAAFPluginTypes::_aafSelectInfo_t

- i -

  • Init() : IAAFEssenceDataStream , IAAFEssenceDataStream2
  • InterpolateMany() : IAAFInterpolator
  • InterpolateOne() : IAAFInterpolator
  • IsCompressionSupported() : IAAFEssenceCodec3
  • isNative : IAAFPluginTypes::_aafSelectInfo_t

- k -

  • kAAFCheckNoWarnings : IAAFPluginTypes
  • kAAFCheckPrintWarnings : IAAFPluginTypes
  • kAAFCheckQuiet : IAAFPluginTypes
  • kAAFCheckVerbose : IAAFPluginTypes
  • kAAFdeinterleave : IAAFPluginTypes
  • kAAFleaveInterleaved : IAAFPluginTypes

- m -

  • MultiCreate() : IAAFMultiEssenceCodec
  • MultiOpen() : IAAFMultiEssenceCodec

- o -

  • Open() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • OpenEssenceStreamAppend() : IAAFEssenceContainer
  • OpenEssenceStreamReadOnly() : IAAFEssenceContainer

- p -

  • PutEssenceFormat() : IAAFEssenceCodec , IAAFEssenceCodec3 , IAAFEssenceCodec2

- r -

  • Read() : IAAFEssenceStream
  • ReadBlocks() : IAAFMultiEssenceCodec
  • ReadSamples() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • RegisterDefinitions() : IAAFClassExtension
  • relativeLoss : IAAFPluginTypes::_aafSelectInfo_t

- s -

  • Seek() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceStream , IAAFEssenceCodec3
  • SeekRelative() : IAAFEssenceStream
  • SetCacheSize() : IAAFEssenceStream
  • SetEssenceAccess() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • SetEssenceElementKey() : IAAFEssenceDataStream2
  • SetFlavour() : IAAFEssenceCodec2 , IAAFEssenceCodec3
  • SetParameter() : IAAFInterpolator
  • SetTypeDefinition() : IAAFInterpolator

- v -

  • ValidateEssence() : IAAFEssenceCodec , IAAFEssenceCodec3 , IAAFEssenceCodec2

- w -

  • willHandleMDES : IAAFPluginTypes::_aafSelectInfo_t
  • Write() : IAAFEssenceStream
  • WriteBlocks() : IAAFMultiEssenceCodec
  • WriteSamples() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


AAFPlugin.idl File Reference

Classes
AAFPlugin.idl File Reference

Go to the source code of this file.

Classes

interface | IAAFClassExtension
The AAFClassExtension interface describes the calls of a plugin the implements an extension to an AAF class. More...
interface | IAAFEssenceCodec
AAFEssenceCodec is DEPRECATED, please use AAFEssenceCodec3. More...
interface | IAAFEssenceCodec2
The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API. More...
interface | IAAFEssenceCodec3
The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API. More...
interface | IAAFEssenceContainer
This interface is used to access essence data in an external data file. More...
interface | IAAFEssenceDataStream
The IAAFEssenceDataStream interface is an additional interface implemented by objects which stream over AAF files, and were therefore created by the AAFContainerDef for AAF files. More...
interface | IAAFEssenceDataStream2
The IAAFEssenceDataStream2 interface is an additional interface implemented by objects which stream over AAF and MXF files. More...
interface | IAAFEssenceStream
The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence. More...
interface | IAAFInterpolator
The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue. More...
interface | IAAFMultiEssenceCodec
The AAFMultiEssenceCodec interface describes the calls of a plugin which handles encoding media in a particular file format, with optional compression. More...
interface | IAAFPlugin
The AAFPlugin interface describes the calls of a plugin. More...
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


AAFPluginTypes.idl File Reference

Classes
AAFPluginTypes.idl File Reference

Go to the source code of this file.

Classes

interface | IAAFPluginTypes
struct | IAAFPluginTypes::_aafSelectInfo_t
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


AAFPlugin.idl Source File

AAFPlugin.idl
Go to the documentation of this file.
00001
00005 cpp_quote("//=---------------------------------------------------------------------=")
00006 cpp_quote("//")
00007 cpp_quote("// This file was GENERATED for the AAF SDK")
00008 cpp_quote("//")
00009 cpp_quote("// $Id: AAFPlugin.idl,v 1.23 2012/06/26 20:54:40 jptrainor Exp $ $Name:  $")
00010 cpp_quote("//")
00011 cpp_quote("// The contents of this file are subject to the AAF SDK Public Source")
00012 cpp_quote("// License Agreement Version 2.0 (the \"License\"); You may not use this")
00013 cpp_quote("// file except in compliance with the License.  The License is available")
00014 cpp_quote("// in AAFSDKPSL.TXT, or you may obtain a copy of the License from the")
00015 cpp_quote("// Advanced Media Workflow Association, Inc., or its successor.")
00016 cpp_quote("//")
00017 cpp_quote("// Software distributed under the License is distributed on an \"AS IS\"")
00018 cpp_quote("// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See")
00019 cpp_quote("// the License for the specific language governing rights and limitations")
00020 cpp_quote("// under the License.  Refer to Section 3.3 of the License for proper use")
00021 cpp_quote("// of this Exhibit.")
00022 cpp_quote("//")
00023 cpp_quote("// WARNING:  Please contact the Advanced Media Workflow Association,")
00024 cpp_quote("// Inc., for more information about any additional licenses to")
00025 cpp_quote("// intellectual property covering the AAF Standard that may be required")
00026 cpp_quote("// to create and distribute AAF compliant products.")
00027 cpp_quote("// (http://www.amwa.tv/policies).")
00028 cpp_quote("//")
00029 cpp_quote("// Copyright Notices:")
00030 cpp_quote("// The Original Code of this file is Copyright 1998-2012, licensor of the")
00031 cpp_quote("// Advanced Media Workflow Association.  All rights reserved.")
00032 cpp_quote("//")
00033 cpp_quote("// The Initial Developer of the Original Code of this file and the")
00034 cpp_quote("// licensor of the Advanced Media Workflow Association is")
00035 cpp_quote("// Avid Technology.")
00036 cpp_quote("// All rights reserved.")
00037 cpp_quote("//")
00038 cpp_quote("//=---------------------------------------------------------------------=")
00039
00040 cpp_quote("//=--------------------------------------------------------------------------=")
00041 cpp_quote("// AAF Interfaces.")
00042 cpp_quote("//=--------------------------------------------------------------------------=")
00043 cpp_quote("//")
00044
00045 #ifndef DO_NO_IMPORTS
00046 import "unknwn.idl";
00047 #endif
00048
00049 #ifndef DO_NO_IMPORTS
00050 import "objidl.idl";
00051 #endif
00052
00053 #ifndef DO_NO_IMPORTS
00054 import "AAF.idl";
00055 #endif
00056
00057 #ifndef DO_NO_IMPORTS
00058 import "AAFPluginTypes.idl";
00059 #endif
00060
00061 interface IAAFClassExtension;
00062 interface IAAFEssenceCodec;
00063 interface IAAFEssenceCodec2;
00064 interface IAAFEssenceCodec3;
00065 interface IAAFEssenceContainer;
00066 interface IAAFEssenceDataStream;
00067 interface IAAFEssenceDataStream2;
00068 interface IAAFEssenceStream;
00069 interface IAAFInterpolator;
00070 interface IAAFMultiEssenceCodec;
00071 interface IAAFPlugin;
00072
00073
00074 // ************************
00075 //
00076 // Interface IAAFClassExtension
00077 //
00078 // ************************
00079
00080
00091 [
00092     object,
00093     uuid(65C07344-DF36-11d3-8008-00104bc9156d),
00094     helpstring("IAAFClassExtension Interface"),
00095     pointer_default(unique)
00096 ]
00097 interface IAAFClassExtension : IUnknown
00098 {
00099
00100
00101   //***********************************************************
00102   //
00103   // RegisterDefinitions()
00104   //
00124   HRESULT RegisterDefinitions (
00125     [in] IAAFDictionary * pDictionary);
00126
00127 }
00128
00129
00130
00131 // ************************
00132 //
00133 // Interface IAAFEssenceCodec
00134 //
00135 // ************************
00136
00137
00138
00162
00163
00167 [
00168     object,
00169     uuid(3631F7A2-9121-11d2-8088-006008143e6f),
00170     helpstring("IAAFEssenceCodec Interface"),
00171     pointer_default(unique)
00172 ]
00173 interface IAAFEssenceCodec : IUnknown
00174 {
00175
00181
00182
00183   //***********************************************************
00184   //
00185   // SetEssenceAccess()
00186   //
00210   HRESULT SetEssenceAccess (
00211     [in] IAAFEssenceAccess * pEssenceAccess);
00212
00213
00214
00215   //***********************************************************
00216   //
00217   // CountFlavours()
00218   //
00236   HRESULT CountFlavours (
00237     [out] aafUInt32*  pCount);
00238
00239
00240   //***********************************************************
00241   //
00242   // GetIndexedFlavourID()
00243   //
00266   HRESULT GetIndexedFlavourID (
00267     [in] aafUInt32  index,
00268     [out] aafUID_t *  pVariant);
00269
00270
00271   //***********************************************************
00272   //
00273   // CountDataDefinitions()
00274   //
00292   HRESULT CountDataDefinitions (
00293     [out] aafUInt32*  pCount);
00294
00295
00296   //***********************************************************
00297   //
00298   // GetIndexedDataDefinition()
00299   //
00319   HRESULT GetIndexedDataDefinition (
00320     [in] aafUInt32  index,
00321     [out] aafUID_t *  pDataDefID);
00322
00323
00324   //***********************************************************
00325   //
00326   // GetMaxCodecDisplayNameLength()
00327   //
00345   HRESULT GetMaxCodecDisplayNameLength (
00346     [out] aafUInt32*  pBufSize);
00347
00348
00349   //***********************************************************
00350   //
00351   // GetCodecDisplayName()
00352   //
00369   HRESULT GetCodecDisplayName (
00370     [in, ref] aafUID_constref  flavour,
00371     [out, string, size_is(bufSize)] aafCharacter *  pName,
00372     [in] aafUInt32  bufSize);
00373
00374
00383
00384
00385   //***********************************************************
00386   //
00387   // CountChannels()
00388   //
00418   HRESULT CountChannels (
00419     [in] IAAFSourceMob * fileMob,
00420     [in, ref] aafUID_constref  essenceKind,
00421     [in] IAAFEssenceStream * stream,
00422     [out] aafUInt16 *  pNumChannels);
00423
00424
00425   //***********************************************************
00426   //
00427   // GetSelectInfo()
00428   //
00456   HRESULT GetSelectInfo (
00457     [in] IAAFSourceMob * fileMob,
00458     [in] IAAFEssenceStream * stream,
00459     [out] aafSelectInfo_t *  pSelectInfo);
00460
00461
00462   //***********************************************************
00463   //
00464   // ValidateEssence()
00465   //
00496   HRESULT ValidateEssence (
00497     [in] IAAFSourceMob * fileMob,
00498     [in] IAAFEssenceStream * stream,
00499     [in] aafCheckVerbose_t  verbose,
00500     [in] aafCheckWarnings_t  outputWarnings,
00501     [in] aafUInt32  bufSize,
00502     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
00503     [out] aafUInt32*  pBytesRead);
00504
00505
00506   //***********************************************************
00507   //
00508   // Create()
00509   //
00537   HRESULT Create (
00538     [in] IAAFSourceMob * fileMob,
00539     [in, ref] aafUID_constref  flavour,
00540     [in, ref] aafUID_constref  essenceKind,
00541     [in, ref] aafRational_constref  sampleRate,
00542     [in] IAAFEssenceStream * stream,
00543     [in] aafCompressEnable_t  compEnable);
00544
00545
00546   //***********************************************************
00547   //
00548   // Open()
00549   //
00573   HRESULT Open (
00574     [in] IAAFSourceMob * fileMob,
00575     [in] aafMediaOpenMode_t  openMode,
00576     [in] IAAFEssenceStream * stream,
00577     [in] aafCompressEnable_t  compEnable);
00578
00579
00585
00586
00587   //***********************************************************
00588   //
00589   // CountSamples()
00590   //
00608   HRESULT CountSamples (
00609     [in, ref] aafUID_constref  essenceKind,
00610     [out] aafLength_t *  pNumSamples);
00611
00612
00613   //***********************************************************
00614   //
00615   // WriteSamples()
00616   //
00649   HRESULT WriteSamples (
00650     [in] aafUInt32  nSamples,
00651     [in] aafUInt32  buflen,
00652     [in,size_is(buflen)] aafDataBuffer_t  buffer,
00653     [out, ref] aafUInt32 *  samplesWritten,
00654     [out, ref] aafUInt32 *  bytesWritten);
00655
00656
00657   //***********************************************************
00658   //
00659   // ReadSamples()
00660   //
00691   HRESULT ReadSamples (
00692     [in] aafUInt32  nSamples,
00693     [in] aafUInt32  buflen,
00694     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
00695     [out, ref] aafUInt32 *  samplesRead,
00696     [out, ref] aafUInt32 *  bytesRead);
00697
00698
00699   //***********************************************************
00700   //
00701   // Seek()
00702   //
00719   HRESULT Seek (
00720     [in] aafPosition_t  sampleFrame);
00721
00722
00723   //***********************************************************
00724   //
00725   // CompleteWrite()
00726   //
00754   HRESULT CompleteWrite (
00755     [in] IAAFSourceMob * pFileMob);
00756
00757
00762
00763
00764   //***********************************************************
00765   //
00766   // CreateDescriptorFromStream()
00767   //
00784   HRESULT CreateDescriptorFromStream (
00785     [in] IAAFEssenceStream * pStream,
00786     [in] IAAFSourceMob * pSourceMob);
00787
00788
00789   //***********************************************************
00790   //
00791   // GetCurrentEssenceStream()
00792   //
00807   HRESULT GetCurrentEssenceStream (
00808     [out] IAAFEssenceStream ** ppStream);
00809
00810
00811   //***********************************************************
00812   //
00813   // PutEssenceFormat()
00814   //
00845   HRESULT PutEssenceFormat (
00846     [in] IAAFEssenceFormat * pFormat);
00847
00848
00849   //***********************************************************
00850   //
00851   // GetEssenceFormat()
00852   //
00885   HRESULT GetEssenceFormat (
00886     [in] IAAFEssenceFormat * pFormatTemplate,
00887     [out] IAAFEssenceFormat ** ppNewFormat);
00888
00889
00890   //***********************************************************
00891   //
00892   // GetDefaultEssenceFormat()
00893   //
00916   HRESULT GetDefaultEssenceFormat (
00917     [out] IAAFEssenceFormat ** ppNewFormat);
00918
00919
00920   //***********************************************************
00921   //
00922   // GetEssenceDescriptorID()
00923   //
00939   HRESULT GetEssenceDescriptorID (
00940     [out] aafUID_t *  pDescriptorID);
00941
00942
00943   //***********************************************************
00944   //
00945   // GetEssenceDataID()
00946   //
00962   HRESULT GetEssenceDataID (
00963     [out] aafUID_t *  pEssenceDataID);
00964
00965
00966   //***********************************************************
00967   //
00968   // GetIndexedSampleSize()
00969   //
00989   HRESULT GetIndexedSampleSize (
00990     [in, ref] aafUID_constref  essenceDefID,
00991     [in] aafPosition_t  sampleOffset,
00992     [out] aafLength_t *  pLength);
00993
00994
00995   //***********************************************************
00996   //
00997   // GetLargestSampleSize()
00998   //
01017   HRESULT GetLargestSampleSize (
01018     [in, ref] aafUID_constref  essenceDefID,
01019     [out] aafLength_t *  pLength);
01020
01021
01022
01023
01024
01025
01026
01027 }
01028
01029
01030 // ************************
01031 //
01032 // Interface IAAFEssenceCodec2
01033 //
01034 // ************************
01035
01036
01037
01065 [
01066     object,
01067     uuid(8888F7A2-9121-11d2-8088-006008143e6f),
01068     helpstring("IAAFEssenceCodec2 Interface"),
01069     pointer_default(unique)
01070 ]
01071 interface IAAFEssenceCodec2 : IUnknown
01072 {
01073
01074
01075
01076
01077
01078   //***********************************************************
01079   //
01080   // SetEssenceAccess()
01081   //
01105   HRESULT SetEssenceAccess (
01106     [in] IAAFEssenceAccess * pEssenceAccess);
01107
01108
01109
01110   //***********************************************************
01111   //
01112   // CountFlavours()
01113   //
01131   HRESULT CountFlavours (
01132     [out] aafUInt32*  pCount);
01133
01134
01135   //***********************************************************
01136   //
01137   // GetIndexedFlavourID()
01138   //
01161   HRESULT GetIndexedFlavourID (
01162     [in] aafUInt32  index,
01163     [out] aafUID_t *  pVariant);
01164
01165
01166   //***********************************************************
01167   //
01168   // CountDataDefinitions()
01169   //
01187   HRESULT CountDataDefinitions (
01188     [out] aafUInt32*  pCount);
01189
01190
01191   //***********************************************************
01192   //
01193   // GetIndexedDataDefinition()
01194   //
01214   HRESULT GetIndexedDataDefinition (
01215     [in] aafUInt32  index,
01216     [out] aafUID_t *  pDataDefID);
01217
01218
01219   //***********************************************************
01220   //
01221   // GetMaxCodecDisplayNameLength()
01222   //
01240   HRESULT GetMaxCodecDisplayNameLength (
01241     [out] aafUInt32*  pBufSize);
01242
01243
01244   //***********************************************************
01245   //
01246   // GetCodecDisplayName()
01247   //
01264   HRESULT GetCodecDisplayName (
01265     [in, ref] aafUID_constref  flavour,
01266     [out, string, size_is(bufSize)] aafCharacter *  pName,
01267     [in] aafUInt32  bufSize);
01268
01269
01278
01279
01280   //***********************************************************
01281   //
01282   // CountChannels()
01283   //
01313   HRESULT CountChannels (
01314     [in] IAAFSourceMob * fileMob,
01315     [in, ref] aafUID_constref  essenceKind,
01316     [in] IAAFEssenceStream * stream,
01317     [out] aafUInt16 *  pNumChannels);
01318
01319
01320   //***********************************************************
01321   //
01322   // GetSelectInfo()
01323   //
01351   HRESULT GetSelectInfo (
01352     [in] IAAFSourceMob * fileMob,
01353     [in] IAAFEssenceStream * stream,
01354     [out] aafSelectInfo_t *  pSelectInfo);
01355
01356
01357   //***********************************************************
01358   //
01359   // ValidateEssence()
01360   //
01391   HRESULT ValidateEssence (
01392     [in] IAAFSourceMob * fileMob,
01393     [in] IAAFEssenceStream * stream,
01394     [in] aafCheckVerbose_t  verbose,
01395     [in] aafCheckWarnings_t  outputWarnings,
01396     [in] aafUInt32  bufSize,
01397     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
01398     [out] aafUInt32*  pBytesRead);
01399
01400
01401   //***********************************************************
01402   //
01403   // Create()
01404   //
01432   HRESULT Create (
01433     [in] IAAFSourceMob * fileMob,
01434     [in, ref] aafUID_constref  flavour,
01435     [in, ref] aafUID_constref  essenceKind,
01436     [in, ref] aafRational_constref  sampleRate,
01437     [in] IAAFEssenceStream * stream,
01438     [in] aafCompressEnable_t  compEnable);
01439
01440
01441   //***********************************************************
01442   //
01443   // Open()
01444   //
01468   HRESULT Open (
01469     [in] IAAFSourceMob * fileMob,
01470     [in] aafMediaOpenMode_t  openMode,
01471     [in] IAAFEssenceStream * stream,
01472     [in] aafCompressEnable_t  compEnable);
01473
01474
01480
01481
01482   //***********************************************************
01483   //
01484   // CountSamples()
01485   //
01503   HRESULT CountSamples (
01504     [in, ref] aafUID_constref  essenceKind,
01505     [out] aafLength_t *  pNumSamples);
01506
01507
01508   //***********************************************************
01509   //
01510   // WriteSamples()
01511   //
01544   HRESULT WriteSamples (
01545     [in] aafUInt32  nSamples,
01546     [in] aafUInt32  buflen,
01547     [in,size_is(buflen)] aafDataBuffer_t  buffer,
01548     [out, ref] aafUInt32 *  samplesWritten,
01549     [out, ref] aafUInt32 *  bytesWritten);
01550
01551
01552   //***********************************************************
01553   //
01554   // ReadSamples()
01555   //
01586   HRESULT ReadSamples (
01587     [in] aafUInt32  nSamples,
01588     [in] aafUInt32  buflen,
01589     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
01590     [out, ref] aafUInt32 *  samplesRead,
01591     [out, ref] aafUInt32 *  bytesRead);
01592
01593
01594   //***********************************************************
01595   //
01596   // Seek()
01597   //
01614   HRESULT Seek (
01615     [in] aafPosition_t  sampleFrame);
01616
01617
01618   //***********************************************************
01619   //
01620   // CompleteWrite()
01621   //
01649   HRESULT CompleteWrite (
01650     [in] IAAFSourceMob * pFileMob);
01651
01652
01657
01658
01659   //***********************************************************
01660   //
01661   // CreateDescriptorFromStream()
01662   //
01679   HRESULT CreateDescriptorFromStream (
01680     [in] IAAFEssenceStream * pStream,
01681     [in] IAAFSourceMob * pSourceMob);
01682
01683
01684   //***********************************************************
01685   //
01686   // GetCurrentEssenceStream()
01687   //
01702   HRESULT GetCurrentEssenceStream (
01703     [out] IAAFEssenceStream ** ppStream);
01704
01705
01706   //***********************************************************
01707   //
01708   // PutEssenceFormat()
01709   //
01740   HRESULT PutEssenceFormat (
01741     [in] IAAFEssenceFormat * pFormat);
01742
01743
01744   //***********************************************************
01745   //
01746   // GetEssenceFormat()
01747   //
01780   HRESULT GetEssenceFormat (
01781     [in] IAAFEssenceFormat * pFormatTemplate,
01782     [out] IAAFEssenceFormat ** ppNewFormat);
01783
01784
01785   //***********************************************************
01786   //
01787   // GetDefaultEssenceFormat()
01788   //
01811   HRESULT GetDefaultEssenceFormat (
01812     [out] IAAFEssenceFormat ** ppNewFormat);
01813
01814
01815   //***********************************************************
01816   //
01817   // GetEssenceDescriptorID()
01818   //
01834   HRESULT GetEssenceDescriptorID (
01835     [out] aafUID_t *  pDescriptorID);
01836
01837
01838   //***********************************************************
01839   //
01840   // GetEssenceDataID()
01841   //
01857   HRESULT GetEssenceDataID (
01858     [out] aafUID_t *  pEssenceDataID);
01859
01860
01861   //***********************************************************
01862   //
01863   // GetIndexedSampleSize()
01864   //
01884   HRESULT GetIndexedSampleSize (
01885     [in, ref] aafUID_constref  essenceDefID,
01886     [in] aafPosition_t  sampleOffset,
01887     [out] aafLength_t *  pLength);
01888
01889
01890   //***********************************************************
01891   //
01892   // GetLargestSampleSize()
01893   //
01912   HRESULT GetLargestSampleSize (
01913     [in, ref] aafUID_constref  essenceDefID,
01914     [out] aafLength_t *  pLength);
01915
01916
01917   //***********************************************************
01918   //
01919   // SetFlavour()
01920   //
01938   HRESULT SetFlavour (
01939     [in, ref] aafUID_constref  flavour);
01940
01941 }
01942
01943
01944
01945 // ************************
01946 //
01947 // Interface IAAFEssenceCodec3
01948 //
01949 // ************************
01950
01951
01952
01980 [
01981     object,
01982     uuid(F375A58F-EB6A-49C7-90A2-7937329AE0E4),
01983     helpstring("IAAFEssenceCodec3 Interface"),
01984     pointer_default(unique)
01985 ]
01986 interface IAAFEssenceCodec3 : IUnknown
01987 {
01988
01989
01990
01991
01992
01993   //***********************************************************
01994   //
01995   // SetEssenceAccess()
01996   //
02020   HRESULT SetEssenceAccess (
02021     [in] IAAFEssenceAccess * pEssenceAccess);
02022
02023
02024
02025   //***********************************************************
02026   //
02027   // CountFlavours()
02028   //
02046   HRESULT CountFlavours (
02047     [out] aafUInt32*  pCount);
02048
02049
02050   //***********************************************************
02051   //
02052   // GetIndexedFlavourID()
02053   //
02076   HRESULT GetIndexedFlavourID (
02077     [in] aafUInt32  index,
02078     [out] aafUID_t *  pVariant);
02079
02080
02081   //***********************************************************
02082   //
02083   // CountDataDefinitions()
02084   //
02102   HRESULT CountDataDefinitions (
02103     [out] aafUInt32*  pCount);
02104
02105
02106   //***********************************************************
02107   //
02108   // GetIndexedDataDefinition()
02109   //
02129   HRESULT GetIndexedDataDefinition (
02130     [in] aafUInt32  index,
02131     [out] aafUID_t *  pDataDefID);
02132
02133
02134   //***********************************************************
02135   //
02136   // GetMaxCodecDisplayNameLength()
02137   //
02155   HRESULT GetMaxCodecDisplayNameLength (
02156     [out] aafUInt32*  pBufSize);
02157
02158
02159   //***********************************************************
02160   //
02161   // GetCodecDisplayName()
02162   //
02179   HRESULT GetCodecDisplayName (
02180     [in, ref] aafUID_constref  flavour,
02181     [out, string, size_is(bufSize)] aafCharacter *  pName,
02182     [in] aafUInt32  bufSize);
02183
02184
02193
02194
02195   //***********************************************************
02196   //
02197   // CountChannels()
02198   //
02228   HRESULT CountChannels (
02229     [in] IAAFSourceMob * fileMob,
02230     [in, ref] aafUID_constref  essenceKind,
02231     [in] IAAFEssenceStream * stream,
02232     [out] aafUInt16 *  pNumChannels);
02233
02234
02235   //***********************************************************
02236   //
02237   // GetSelectInfo()
02238   //
02266   HRESULT GetSelectInfo (
02267     [in] IAAFSourceMob * fileMob,
02268     [in] IAAFEssenceStream * stream,
02269     [out] aafSelectInfo_t *  pSelectInfo);
02270
02271
02272   //***********************************************************
02273   //
02274   // ValidateEssence()
02275   //
02306   HRESULT ValidateEssence (
02307     [in] IAAFSourceMob * fileMob,
02308     [in] IAAFEssenceStream * stream,
02309     [in] aafCheckVerbose_t  verbose,
02310     [in] aafCheckWarnings_t  outputWarnings,
02311     [in] aafUInt32  bufSize,
02312     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
02313     [out] aafUInt32*  pBytesRead);
02314
02315
02316   //***********************************************************
02317   //
02318   // Create()
02319   //
02347   HRESULT Create (
02348     [in] IAAFSourceMob * fileMob,
02349     [in, ref] aafUID_constref  flavour,
02350     [in, ref] aafUID_constref  essenceKind,
02351     [in, ref] aafRational_constref  sampleRate,
02352     [in] IAAFEssenceStream * stream,
02353     [in] aafCompressEnable_t  compEnable);
02354
02355
02356   //***********************************************************
02357   //
02358   // Open()
02359   //
02383   HRESULT Open (
02384     [in] IAAFSourceMob * fileMob,
02385     [in] aafMediaOpenMode_t  openMode,
02386     [in] IAAFEssenceStream * stream,
02387     [in] aafCompressEnable_t  compEnable);
02388
02389
02395
02396
02397   //***********************************************************
02398   //
02399   // CountSamples()
02400   //
02418   HRESULT CountSamples (
02419     [in, ref] aafUID_constref  essenceKind,
02420     [out] aafLength_t *  pNumSamples);
02421
02422
02423   //***********************************************************
02424   //
02425   // WriteSamples()
02426   //
02459   HRESULT WriteSamples (
02460     [in] aafUInt32  nSamples,
02461     [in] aafUInt32  buflen,
02462     [in,size_is(buflen)] aafDataBuffer_t  buffer,
02463     [out, ref] aafUInt32 *  samplesWritten,
02464     [out, ref] aafUInt32 *  bytesWritten);
02465
02466
02467   //***********************************************************
02468   //
02469   // ReadSamples()
02470   //
02501   HRESULT ReadSamples (
02502     [in] aafUInt32  nSamples,
02503     [in] aafUInt32  buflen,
02504     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
02505     [out, ref] aafUInt32 *  samplesRead,
02506     [out, ref] aafUInt32 *  bytesRead);
02507
02508
02509   //***********************************************************
02510   //
02511   // Seek()
02512   //
02529   HRESULT Seek (
02530     [in] aafPosition_t  sampleFrame);
02531
02532
02533   //***********************************************************
02534   //
02535   // CompleteWrite()
02536   //
02564   HRESULT CompleteWrite (
02565     [in] IAAFSourceMob * pFileMob);
02566
02567
02572
02573
02574   //***********************************************************
02575   //
02576   // CreateDescriptorFromStream()
02577   //
02594   HRESULT CreateDescriptorFromStream (
02595     [in] IAAFEssenceStream * pStream,
02596     [in] IAAFSourceMob * pSourceMob);
02597
02598
02599   //***********************************************************
02600   //
02601   // GetCurrentEssenceStream()
02602   //
02617   HRESULT GetCurrentEssenceStream (
02618     [out] IAAFEssenceStream ** ppStream);
02619
02620
02621   //***********************************************************
02622   //
02623   // PutEssenceFormat()
02624   //
02655   HRESULT PutEssenceFormat (
02656     [in] IAAFEssenceFormat * pFormat);
02657
02658
02659   //***********************************************************
02660   //
02661   // GetEssenceFormat()
02662   //
02695   HRESULT GetEssenceFormat (
02696     [in] IAAFEssenceFormat * pFormatTemplate,
02697     [out] IAAFEssenceFormat ** ppNewFormat);
02698
02699
02700   //***********************************************************
02701   //
02702   // GetDefaultEssenceFormat()
02703   //
02726   HRESULT GetDefaultEssenceFormat (
02727     [out] IAAFEssenceFormat ** ppNewFormat);
02728
02729
02730   //***********************************************************
02731   //
02732   // GetEssenceDescriptorID()
02733   //
02749   HRESULT GetEssenceDescriptorID (
02750     [out] aafUID_t *  pDescriptorID);
02751
02752
02753   //***********************************************************
02754   //
02755   // GetEssenceDataID()
02756   //
02772   HRESULT GetEssenceDataID (
02773     [out] aafUID_t *  pEssenceDataID);
02774
02775
02776   //***********************************************************
02777   //
02778   // GetIndexedSampleSize()
02779   //
02799   HRESULT GetIndexedSampleSize (
02800     [in, ref] aafUID_constref  essenceDefID,
02801     [in] aafPosition_t  sampleOffset,
02802     [out] aafLength_t *  pLength);
02803
02804
02805   //***********************************************************
02806   //
02807   // GetLargestSampleSize()
02808   //
02827   HRESULT GetLargestSampleSize (
02828     [in, ref] aafUID_constref  essenceDefID,
02829     [out] aafLength_t *  pLength);
02830
02831
02832   //***********************************************************
02833   //
02834   // SetFlavour()
02835   //
02853   HRESULT SetFlavour (
02854     [in, ref] aafUID_constref  flavour);
02855
02856
02857   //***********************************************************
02858   //
02859   // IsCompressionSupported()
02860   //
02882   HRESULT IsCompressionSupported (
02883     [in] aafUID_constref  compression,
02884     [out,retval] aafBoolean_t*  pIsSupported);
02885
02886 }
02887
02888
02889
02890 // ************************
02891 //
02892 // Interface IAAFEssenceContainer
02893 //
02894 // ************************
02907
02908 [
02909     object,
02910     uuid(a7337031-c103-11d2-808a-006008143e6f),
02911     helpstring("IAAFEssenceContainer Interface"),
02912     pointer_default(unique)
02913 ]
02914 interface IAAFEssenceContainer : IUnknown
02915 {
02916
02917   //***********************************************************
02918   //
02919   // CreateEssenceStream()
02920   //
02942   HRESULT CreateEssenceStream (
02943     [in, string] aafCharacter_constptr  pName,
02944     [in] aafMobID_constptr  pMobID,
02945     [out, retval] IAAFEssenceStream ** ppEssenceStream);
02946
02947
02948   //***********************************************************
02949   //
02950   // CreateEssenceStreamWriteOnly()
02951   //
02973   HRESULT CreateEssenceStreamWriteOnly (
02974     [in, string] aafCharacter_constptr  pPath,
02975     [in] aafMobID_constptr  pMobID,
02976     [out, retval] IAAFEssenceStream ** ppEssenceStream);
02977
02978
02979   //***********************************************************
02980   //
02981   // OpenEssenceStreamReadOnly()
02982   //
03006   HRESULT OpenEssenceStreamReadOnly (
03007     [in, string] aafCharacter_constptr  pFilePath,
03008     [in] aafMobID_constptr  pMobID,
03009     [out, retval] IAAFEssenceStream ** ppEssenceStream);
03010
03011
03012   //***********************************************************
03013   //
03014   // OpenEssenceStreamAppend()
03015   //
03039   HRESULT OpenEssenceStreamAppend (
03040     [in, string] aafCharacter_constptr  pFilePath,
03041     [in] aafMobID_constptr  pMobID,
03042     [out, retval] IAAFEssenceStream ** ppEssenceStream);
03043 }
03044
03045
03046
03047 // ************************
03048 //
03049 // Interface IAAFEssenceDataStream
03050 //
03051 // ************************
03052
03076 [
03077     object,
03078     uuid(CDDB6AB1-98DC-11d2-808a-006008143e6f),
03079     helpstring("IAAFEssenceDataStream Interface"),
03080     pointer_default(unique)
03081 ]
03082 interface IAAFEssenceDataStream : IUnknown
03083 {
03084
03085
03086   //***********************************************************
03087   //
03088   // Init()
03089   //
03094   HRESULT Init (
03095     [in] IUnknown * essenceData);
03096
03097 }
03098
03099
03100
03101
03102 // ************************
03103 //
03104 // Interface IAAFEssenceDataStream2
03105 //
03106 // ************************
03107
03139 [
03140     object,
03141     uuid(F8C9C2A1-DD6B-4e10-884F-012AF43550BC),
03142     helpstring("IAAFEssenceDataStream2 Interface"),
03143     pointer_default(unique)
03144 ]
03145
03146 interface IAAFEssenceDataStream2 : IUnknown
03147 {
03148
03149
03150   //***********************************************************
03151   //
03152   // Init()
03153   //
03158   HRESULT Init (
03159     [in] IUnknown * essenceData);
03160
03161   //***********************************************************
03162   //
03163   // GetEssenceData()
03164   //
03186   HRESULT GetEssenceData (
03187     [out,retval] IAAFEssenceData ** ppEssenceData);
03188
03189   //***********************************************************
03190   //
03191   // SetEssenceElementKey()
03192   //
03238   HRESULT SetEssenceElementKey (
03239     [in, ref] aafUID_constref  eek,
03240     [in] aafUInt8  eeKind,
03241     [in] aafUInt8  eeCount,
03242     [in] aafUInt8  eeType,
03243     [in] aafUInt8  eeIndex,
03244     [in] aafSlotID_t  sourceSlotID);
03245
03246   //***********************************************************
03247   //
03248   // GetEssenceElementKey()
03249   //
03277   HRESULT GetEssenceElementKey (
03278     [out] aafUID_t *  pEssenceElementKey);
03279
03280 }
03281
03282
03283
03284
03285 // ************************
03286 //
03287 // Interface IAAFEssenceStream
03288 //
03289 // ************************
03290
03310
03311
03312 [
03313     object,
03314     uuid(83402902-9146-11d2-8088-006008143e6f),
03315     helpstring("IAAFEssenceStream Interface"),
03316     pointer_default(unique)
03317 ]
03318 interface IAAFEssenceStream : IUnknown
03319 {
03320
03321
03322   //***********************************************************
03323   //
03324   // Write()
03325   //
03346   HRESULT Write (
03347     [in] aafUInt32  bytes,
03348     [out, size_is(bytes)] aafDataBuffer_t  buffer,
03349     [out,ref] aafUInt32 *  bytesWritten);
03350
03351
03352   //***********************************************************
03353   //
03354   // Read()
03355   //
03376   HRESULT Read (
03377     [in] aafUInt32  buflen,
03378     [out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t  pBuffer,
03379     [out,ref] aafUInt32 *  pBytesRead);
03380
03381   //***********************************************************
03382   //
03383   // Seek()
03384   //
03389   HRESULT Seek (
03390     [in] aafPosition_t  byteOffset);
03401
03402   //***********************************************************
03403   //
03404   // SeekRelative()
03405   //
03420   HRESULT SeekRelative (
03421     [in] aafInt32  byteOffset);
03422
03423   //***********************************************************
03424   //
03425   // GetPosition()
03426   //
03441   HRESULT GetPosition (
03442     [out] aafPosition_t *  pPosition);
03443
03444   //***********************************************************
03445   //
03446   // GetLength()
03447   //
03462   HRESULT GetLength (
03463     [out] aafLength_t *  pLength);
03464
03471
03472   //***********************************************************
03473   //
03474   // FlushCache()
03475   //
03490   HRESULT FlushCache ();
03491
03492   //***********************************************************
03493   //
03494   // SetCacheSize()
03495   //
03508   HRESULT SetCacheSize (
03509     [in] aafUInt32  itsSize);
03510
03511 }
03512
03513
03514
03515
03516 // ************************
03517 //
03518 // Interface IAAFInterpolator
03519 //
03520 // ************************
03521
03541
03542
03546 [
03547     object,
03548     uuid(75C6CDF2-0D67-11d3-80A9-006008143e6f),
03549     helpstring("IAAFInterpolator Interface"),
03550     pointer_default(unique)
03551 ]
03552 interface IAAFInterpolator : IUnknown
03553 {
03554
03555
03561
03562   //***********************************************************
03563   //
03564   // GetNumTypesSupported()
03565   //
03586   HRESULT GetNumTypesSupported (
03587     [out] aafUInt32*  pCount);
03588
03589
03590   //***********************************************************
03591   //
03592   // GetIndexedSupportedType()
03593   //
03620   HRESULT GetIndexedSupportedType (
03621     [in] aafUInt32  index,
03622     [out] IAAFTypeDef ** ppType);
03623
03624   //***********************************************************
03625   //
03626   // GetTypeDefinition()
03627   //
03651   HRESULT GetTypeDefinition (
03652     [out] IAAFTypeDef ** ppTypeDef);
03653
03654
03655   //***********************************************************
03656   //
03657   // SetTypeDefinition()
03658   //
03676   HRESULT SetTypeDefinition (
03677     [in] IAAFTypeDef * pTypeDef);
03678
03679
03680   //***********************************************************
03681   //
03682   // GetParameter()
03683   //
03707   HRESULT GetParameter (
03708     [out] IAAFParameter ** ppParameter);
03709
03710
03711   //***********************************************************
03712   //
03713   // SetParameter()
03714   //
03732   HRESULT SetParameter (
03733     [in] IAAFParameter * pParameter);
03734
03735
03736   //***********************************************************
03737   //
03738   // InterpolateOne()
03739   //
03767   HRESULT InterpolateOne (
03768     [in] aafRational_t *  pInputValue,
03769     [in] aafUInt32  valueSize,
03770     [out, size_is(valueSize),length_is(*bytesRead)] aafDataBuffer_t  pValue,
03771     [out] aafUInt32*  bytesRead);
03772
03773
03774   //***********************************************************
03775   //
03776   // InterpolateMany()
03777   //
03811   HRESULT InterpolateMany (
03812     [in] aafRational_t *  pStartInputValue,
03813     [in] aafRational_t *  pInputStep,
03814     [in] aafUInt32  generateCount,
03815     [out] aafMemPtr_t  pOutputValue,
03816     [out] aafUInt32 *  pResultCount);
03817 }
03818
03819
03820
03821 // ************************
03822 //
03823 // Interface IAAFMultiEssenceCodec
03824 //
03825 // ************************
03826
03827
03828
03850
03851
03855 [
03856     object,
03857     uuid(7F93992D-DDA3-11d3-8008-00104bc9156d),
03858     helpstring("IAAFMultiEssenceCodec Interface"),
03859     pointer_default(unique)
03860 ]
03861 interface IAAFMultiEssenceCodec : IUnknown
03862 {
03863
03864
03870
03871
03880
03881
03882   //***********************************************************
03883   //
03884   // MultiCreate()
03885   //
03913   HRESULT MultiCreate (
03914     [in] IAAFSourceMob * fileMob,
03915     [in, ref] aafUID_constref  flavour,
03916     [in] IAAFEssenceStream * stream,
03917     [in] aafCompressEnable_t  compEnable,
03918     [in] aafUInt32  numParms,
03919     [in, size_is(numParms)] aafmMultiCreate_t *  createParms);
03920
03921
03922   //***********************************************************
03923   //
03924   // MultiOpen()
03925   //
03945   HRESULT MultiOpen (
03946     [in] IAAFSourceMob * fileMob,
03947     [in] aafMediaOpenMode_t  openMode,
03948     [in] IAAFEssenceStream * stream,
03949     [in] aafCompressEnable_t  compEnable);
03950
03951
03957
03958
03959
03960
03961   //***********************************************************
03962   //
03963   // WriteBlocks()
03964   //
03999   HRESULT WriteBlocks (
04000     [in] aafDeinterleave_t  inter,
04001     [in] aafUInt16  xferBlockCount,
04002     [in, size_is(xferBlockCount)] aafmMultiXfer_t *  pTransferParm,
04003     [out, size_is(xferBlockCount)] aafmMultiResult_t *  pResultParm);
04004
04005   //***********************************************************
04006   //
04007   // ReadBlocks()
04008   //
04041   HRESULT ReadBlocks (
04042     [in] aafDeinterleave_t  inter,
04043     [in] aafUInt16  xferBlockCount,
04044     [out, size_is(xferBlockCount)] aafmMultiXfer_t *  pTransferParm,
04045     [out, size_is(xferBlockCount)] aafmMultiResult_t *  pResultParm);
04046 }
04047
04048
04049
04050 // ************************
04051 //
04052 // Interface IAAFPlugin
04053 //
04054 // ************************
04055
04056
04057
04058
04059
04068
04069
04070 [
04071     object,
04072     uuid(3631F7A4-9121-11d2-8088-006008143e6f),
04073     helpstring("IAAFPlugin Interface"),
04074     pointer_default(unique)
04075 ]
04076 interface IAAFPlugin : IUnknown
04077 {
04078
04079
04080   //***********************************************************
04081   //
04082   // CountDefinitions()
04083   //
04107   HRESULT CountDefinitions (
04108     [out] aafUInt32 *  pDefCount);
04109
04110   //***********************************************************
04111   //
04112   // GetIndexedDefinitionID()
04113   //
04146   HRESULT GetIndexedDefinitionID (
04147     [in] aafUInt32  index,
04148     [out] aafUID_t *  pPluginID);
04149
04150   //***********************************************************
04151   //
04152   // GetPluginDescriptorID()
04153   //
04176   HRESULT GetPluginDescriptorID (
04177     [out] aafUID_t *  pPluginID);
04178
04179   //***********************************************************
04180   //
04181   // GetIndexedDefinitionObject()
04182   //
04216   HRESULT GetIndexedDefinitionObject (
04217     [in] aafUInt32  index,
04218     [in] IAAFDictionary * pDictionary,
04219     [out] IAAFDefObject ** pDefObject);
04220
04221   //***********************************************************
04222   //
04223   // CreateDescriptor()
04224   //
04251   HRESULT CreateDescriptor (
04252     [in] IAAFDictionary * pDictionary,
04253     [out] IAAFPluginDef ** pPluginDef);
04254
04255 }
04256
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


AAFPluginTypes.idl Source File

AAFPluginTypes.idl
Go to the documentation of this file.
00001
00002 cpp_quote("//=---------------------------------------------------------------------=")
00003 cpp_quote("//")
00004 cpp_quote("// This file was GENERATED for the AAF SDK")
00005 cpp_quote("//")
00006 cpp_quote("// $Id: AAFPluginTypes.idl,v 1.6 2012/06/26 20:54:40 jptrainor Exp $ $Name:  $")
00007 cpp_quote("//")
00008 cpp_quote("// The contents of this file are subject to the AAF SDK Public Source")
00009 cpp_quote("// License Agreement Version 2.0 (the \"License\"); You may not use this")
00010 cpp_quote("// file except in compliance with the License.  The License is available")
00011 cpp_quote("// in AAFSDKPSL.TXT, or you may obtain a copy of the License from the")
00012 cpp_quote("// Advanced Media Workflow Association, Inc., or its successor.")
00013 cpp_quote("//")
00014 cpp_quote("// Software distributed under the License is distributed on an \"AS IS\"")
00015 cpp_quote("// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See")
00016 cpp_quote("// the License for the specific language governing rights and limitations")
00017 cpp_quote("// under the License.  Refer to Section 3.3 of the License for proper use")
00018 cpp_quote("// of this Exhibit.")
00019 cpp_quote("//")
00020 cpp_quote("// WARNING:  Please contact the Advanced Media Workflow Association,")
00021 cpp_quote("// Inc., for more information about any additional licenses to")
00022 cpp_quote("// intellectual property covering the AAF Standard that may be required")
00023 cpp_quote("// to create and distribute AAF compliant products.")
00024 cpp_quote("// (http://www.amwa.tv/policies).")
00025 cpp_quote("//")
00026 cpp_quote("// Copyright Notices:")
00027 cpp_quote("// The Original Code of this file is Copyright 1998-2012, licensor of the")
00028 cpp_quote("// Advanced Media Workflow Association.  All rights reserved.")
00029 cpp_quote("//")
00030 cpp_quote("// The Initial Developer of the Original Code of this file and the")
00031 cpp_quote("// licensor of the Advanced Media Workflow Association is")
00032 cpp_quote("// Avid Technology.")
00033 cpp_quote("// All rights reserved.")
00034 cpp_quote("//")
00035 cpp_quote("//=---------------------------------------------------------------------=")
00036
00037
00038
00039 #ifndef DO_NO_IMPORTS
00040 import "wtypes.idl";
00041 #endif
00042 #ifndef DO_NO_IMPORTS
00043 import "AAFTypes.idl";
00044 #endif
00045
00046 [
00047     uuid(410ED8B1-912B-11D2-8088-006008143e6f),
00048     pointer_default(unique)
00049 ]
00050
00051 interface IAAFPluginTypes
00052 {
00053
00054 typedef aafInt32 aafDeinterleave_t;
00055 typedef enum _aafDeinterleave_e
00056 {
00057         kAAFdeinterleave,
00058         kAAFleaveInterleaved
00059 } aafDeinterleave_e;
00060
00061 typedef aafInt32 aafCheckVerbose_t;
00062 typedef enum _aafCheckVerbose_e
00063 {
00064         kAAFCheckVerbose,
00065         kAAFCheckQuiet
00066 } aafCheckVerbose_e;
00067
00068 typedef aafInt32 aafCheckWarnings_t;
00069 typedef enum _aafCheckWarnings_e
00070 {
00071         kAAFCheckPrintWarnings,
00072         kAAFCheckNoWarnings
00073 } aafCheckWarnings_e;
00074
00075 typedef struct _aafSelectInfo_t
00076 {
00077         aafBoolean_t            hwAssisted;
00078         aafBoolean_t            isNative;
00079         aafBoolean_t            willHandleMDES;
00080         aafInt16                relativeLoss;
00081         aafUInt32               avgBitsPerSec;
00082 } aafSelectInfo_t;
00083
00084 }
00085
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class List

Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
IAAFPluginTypes::_aafSelectInfo_t |
IAAFClassExtension | The AAFClassExtension interface describes the calls of a plugin the implements an extension to an AAF class
IAAFEssenceCodec | AAFEssenceCodec is DEPRECATED, please use AAFEssenceCodec3
IAAFEssenceCodec2 | The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API
IAAFEssenceCodec3 | The AAFEssenceCodec2 interface adds SetFlavour() to the interfaces of the now deprecated AAFEssenceCodec API
IAAFEssenceContainer | This interface is used to access essence data in an external data file
IAAFEssenceDataStream | The IAAFEssenceDataStream interface is an additional interface implemented by objects which stream over AAF files, and were therefore created by the AAFContainerDef for AAF files
IAAFEssenceDataStream2 | The IAAFEssenceDataStream2 interface is an additional interface implemented by objects which stream over AAF and MXF files
IAAFEssenceStream | The IAAFEssenceStream interface is an internal interface used by AAFEssenceAccess and essence codecs to read the low-level representation of the essence
IAAFInterpolator | The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue
IAAFMultiEssenceCodec | The AAFMultiEssenceCodec interface describes the calls of a plugin which handles encoding media in a particular file format, with optional compression
IAAFPlugin | The AAFPlugin interface describes the calls of a plugin
IAAFPluginTypes |
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class Index

Class Index
I | _
I
IAAFEssenceCodec2 IAAFEssenceDataStream IAAFInterpolator IAAFPluginTypes
IAAFClassExtension IAAFEssenceCodec3 IAAFEssenceDataStream2 IAAFMultiEssenceCodec
_
IAAFEssenceCodec IAAFEssenceContainer IAAFEssenceStream IAAFPlugin IAAFPluginTypes::_aafSelectInfo_t
I | _
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


File List

File List
Here is a list of all files with brief descriptions:
AAFPlugin.idl [code]
AAFPluginTypes.idl [code]


Class Members - Enumerations

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • _aafCheckVerbose_e : IAAFPluginTypes
  • _aafCheckWarnings_e : IAAFPluginTypes
  • _aafDeinterleave_e : IAAFPluginTypes
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class Members - Enumerator

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • kAAFCheckNoWarnings : IAAFPluginTypes
  • kAAFCheckPrintWarnings : IAAFPluginTypes
  • kAAFCheckQuiet : IAAFPluginTypes
  • kAAFCheckVerbose : IAAFPluginTypes
  • kAAFdeinterleave : IAAFPluginTypes
  • kAAFleaveInterleaved : IAAFPluginTypes
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class Members - Functions

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • c
  • f
  • g
  • i
  • m
  • o
  • p
  • r
  • s
  • v
  • w

- c -

  • CompleteWrite() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountChannels() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountDataDefinitions() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • CountDefinitions() : IAAFPlugin
  • CountFlavours() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CountSamples() : IAAFEssenceCodec3 , IAAFEssenceCodec2 , IAAFEssenceCodec
  • Create() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CreateDescriptor() : IAAFPlugin
  • CreateDescriptorFromStream() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • CreateEssenceStream() : IAAFEssenceContainer
  • CreateEssenceStreamWriteOnly() : IAAFEssenceContainer

- f -

  • FlushCache() : IAAFEssenceStream

- g -

  • GetCodecDisplayName() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetCurrentEssenceStream() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetDefaultEssenceFormat() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • GetEssenceData() : IAAFEssenceDataStream2
  • GetEssenceDataID() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetEssenceDescriptorID() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetEssenceElementKey() : IAAFEssenceDataStream2
  • GetEssenceFormat() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetIndexedDataDefinition() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetIndexedDefinitionID() : IAAFPlugin
  • GetIndexedDefinitionObject() : IAAFPlugin
  • GetIndexedFlavourID() : IAAFEssenceCodec2 , IAAFEssenceCodec , IAAFEssenceCodec3
  • GetIndexedSampleSize() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetIndexedSupportedType() : IAAFInterpolator
  • GetLargestSampleSize() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • GetLength() : IAAFEssenceStream
  • GetMaxCodecDisplayNameLength() : IAAFEssenceCodec3 , IAAFEssenceCodec , IAAFEssenceCodec2
  • GetNumTypesSupported() : IAAFInterpolator
  • GetParameter() : IAAFInterpolator
  • GetPluginDescriptorID() : IAAFPlugin
  • GetPosition() : IAAFEssenceStream
  • GetSelectInfo() : IAAFEssenceCodec2 , IAAFEssenceCodec , IAAFEssenceCodec3
  • GetTypeDefinition() : IAAFInterpolator

- i -

  • Init() : IAAFEssenceDataStream , IAAFEssenceDataStream2
  • InterpolateMany() : IAAFInterpolator
  • InterpolateOne() : IAAFInterpolator
  • IsCompressionSupported() : IAAFEssenceCodec3

- m -

  • MultiCreate() : IAAFMultiEssenceCodec
  • MultiOpen() : IAAFMultiEssenceCodec

- o -

  • Open() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceCodec3
  • OpenEssenceStreamAppend() : IAAFEssenceContainer
  • OpenEssenceStreamReadOnly() : IAAFEssenceContainer

- p -

  • PutEssenceFormat() : IAAFEssenceCodec , IAAFEssenceCodec3 , IAAFEssenceCodec2

- r -

  • Read() : IAAFEssenceStream
  • ReadBlocks() : IAAFMultiEssenceCodec
  • ReadSamples() : IAAFEssenceCodec3 , IAAFEssenceCodec2 , IAAFEssenceCodec
  • RegisterDefinitions() : IAAFClassExtension

- s -

  • Seek() : IAAFEssenceCodec , IAAFEssenceCodec2 , IAAFEssenceStream , IAAFEssenceCodec3
  • SeekRelative() : IAAFEssenceStream
  • SetCacheSize() : IAAFEssenceStream
  • SetEssenceAccess() : IAAFEssenceCodec2 , IAAFEssenceCodec3 , IAAFEssenceCodec
  • SetEssenceElementKey() : IAAFEssenceDataStream2
  • SetFlavour() : IAAFEssenceCodec2 , IAAFEssenceCodec3
  • SetParameter() : IAAFInterpolator
  • SetTypeDefinition() : IAAFInterpolator

- v -

  • ValidateEssence() : IAAFEssenceCodec , IAAFEssenceCodec3 , IAAFEssenceCodec2

- w -

  • Write() : IAAFEssenceStream
  • WriteBlocks() : IAAFMultiEssenceCodec
  • WriteSamples() : IAAFEssenceCodec2 , IAAFEssenceCodec , IAAFEssenceCodec3
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class Members - Typedefs

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • aafCheckVerbose_e : IAAFPluginTypes
  • aafCheckVerbose_t : IAAFPluginTypes
  • aafCheckWarnings_e : IAAFPluginTypes
  • aafCheckWarnings_t : IAAFPluginTypes
  • aafDeinterleave_e : IAAFPluginTypes
  • aafDeinterleave_t : IAAFPluginTypes
  • aafSelectInfo_t : IAAFPluginTypes
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Class Members - Variables

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • avgBitsPerSec : IAAFPluginTypes::_aafSelectInfo_t
  • hwAssisted : IAAFPluginTypes::_aafSelectInfo_t
  • isNative : IAAFPluginTypes::_aafSelectInfo_t
  • relativeLoss : IAAFPluginTypes::_aafSelectInfo_t
  • willHandleMDES : IAAFPluginTypes::_aafSelectInfo_t
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Member List

IAAFClassExtension Member List
This is the complete list of members for IAAFClassExtension, including all inherited members.
RegisterDefinitions([in] IAAFDictionary *pDictionary) IAAFClassExtension
Generated on Wed Jul 4 2012 22:14:07 for by doxygen 1.7.4


Member List

IAAFEssenceCodec2 Member List
This is the complete list of members for IAAFEssenceCodec2, including all inherited members.
CompleteWrite([in] IAAFSourceMob *pFileMob) | IAAFEssenceCodec2
CountChannels([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref essenceKind,[in] IAAFEssenceStream *stream,[out] aafUInt16 *pNumChannels) | IAAFEssenceCodec2
CountDataDefinitions([out] aafUInt32 *pCount) | IAAFEssenceCodec2
CountFlavours([out] aafUInt32 *pCount) | IAAFEssenceCodec2
CountSamples([in, ref] aafUID_constref essenceKind,[out] aafLength_t *pNumSamples) | IAAFEssenceCodec2
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) | IAAFEssenceCodec2
CreateDescriptorFromStream([in] IAAFEssenceStream *pStream,[in] IAAFSourceMob *pSourceMob) | IAAFEssenceCodec2
GetCodecDisplayName([in, ref] aafUID_constref flavour,[out, string, size_is(bufSize)] aafCharacter *pName,[in] aafUInt32 bufSize) | IAAFEssenceCodec2
GetCurrentEssenceStream([out] IAAFEssenceStream **ppStream) | IAAFEssenceCodec2
GetDefaultEssenceFormat([out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec2
GetEssenceDataID([out] aafUID_t *pEssenceDataID) | IAAFEssenceCodec2
GetEssenceDescriptorID([out] aafUID_t *pDescriptorID) | IAAFEssenceCodec2
GetEssenceFormat([in] IAAFEssenceFormat *pFormatTemplate,[out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec2
GetIndexedDataDefinition([in] aafUInt32 index,[out] aafUID_t *pDataDefID) | IAAFEssenceCodec2
GetIndexedFlavourID([in] aafUInt32 index,[out] aafUID_t *pVariant) | IAAFEssenceCodec2
GetIndexedSampleSize([in, ref] aafUID_constref essenceDefID,[in] aafPosition_t sampleOffset,[out] aafLength_t *pLength) | IAAFEssenceCodec2
GetLargestSampleSize([in, ref] aafUID_constref essenceDefID,[out] aafLength_t *pLength) | IAAFEssenceCodec2
GetMaxCodecDisplayNameLength([out] aafUInt32 *pBufSize) | IAAFEssenceCodec2
GetSelectInfo([in] IAAFSourceMob *fileMob,[in] IAAFEssenceStream *stream,[out] aafSelectInfo_t *pSelectInfo) | IAAFEssenceCodec2
Open([in] IAAFSourceMob *fileMob,[in] aafMediaOpenMode_t openMode,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) | IAAFEssenceCodec2
PutEssenceFormat([in] IAAFEssenceFormat *pFormat) | IAAFEssenceCodec2
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) | IAAFEssenceCodec2
Seek([in] aafPosition_t sampleFrame) | IAAFEssenceCodec2
SetEssenceAccess([in] IAAFEssenceAccess *pEssenceAccess) | IAAFEssenceCodec2
SetFlavour([in, ref] aafUID_constref flavour) | IAAFEssenceCodec2
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) | IAAFEssenceCodec2
WriteSamples([in] aafUInt32 nSamples,[in] aafUInt32 buflen,[in, size_is(buflen)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *samplesWritten,[out, ref] aafUInt32 *bytesWritten) | IAAFEssenceCodec2


Member List

IAAFEssenceCodec3 Member List
This is the complete list of members for IAAFEssenceCodec3, including all inherited members.
CompleteWrite([in] IAAFSourceMob *pFileMob) | IAAFEssenceCodec3
CountChannels([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref essenceKind,[in] IAAFEssenceStream *stream,[out] aafUInt16 *pNumChannels) | IAAFEssenceCodec3
CountDataDefinitions([out] aafUInt32 *pCount) | IAAFEssenceCodec3
CountFlavours([out] aafUInt32 *pCount) | IAAFEssenceCodec3
CountSamples([in, ref] aafUID_constref essenceKind,[out] aafLength_t *pNumSamples) | IAAFEssenceCodec3
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) | IAAFEssenceCodec3
CreateDescriptorFromStream([in] IAAFEssenceStream *pStream,[in] IAAFSourceMob *pSourceMob) | IAAFEssenceCodec3
GetCodecDisplayName([in, ref] aafUID_constref flavour,[out, string, size_is(bufSize)] aafCharacter *pName,[in] aafUInt32 bufSize) | IAAFEssenceCodec3
GetCurrentEssenceStream([out] IAAFEssenceStream **ppStream) | IAAFEssenceCodec3
GetDefaultEssenceFormat([out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec3
GetEssenceDataID([out] aafUID_t *pEssenceDataID) | IAAFEssenceCodec3
GetEssenceDescriptorID([out] aafUID_t *pDescriptorID) | IAAFEssenceCodec3
GetEssenceFormat([in] IAAFEssenceFormat *pFormatTemplate,[out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec3
GetIndexedDataDefinition([in] aafUInt32 index,[out] aafUID_t *pDataDefID) | IAAFEssenceCodec3
GetIndexedFlavourID([in] aafUInt32 index,[out] aafUID_t *pVariant) | IAAFEssenceCodec3
GetIndexedSampleSize([in, ref] aafUID_constref essenceDefID,[in] aafPosition_t sampleOffset,[out] aafLength_t *pLength) | IAAFEssenceCodec3
GetLargestSampleSize([in, ref] aafUID_constref essenceDefID,[out] aafLength_t *pLength) | IAAFEssenceCodec3
GetMaxCodecDisplayNameLength([out] aafUInt32 *pBufSize) | IAAFEssenceCodec3
GetSelectInfo([in] IAAFSourceMob *fileMob,[in] IAAFEssenceStream *stream,[out] aafSelectInfo_t *pSelectInfo) | IAAFEssenceCodec3
IsCompressionSupported([in] aafUID_constref compression,[out, retval] aafBoolean_t *pIsSupported) | IAAFEssenceCodec3
Open([in] IAAFSourceMob *fileMob,[in] aafMediaOpenMode_t openMode,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) | IAAFEssenceCodec3
PutEssenceFormat([in] IAAFEssenceFormat *pFormat) | IAAFEssenceCodec3
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) | IAAFEssenceCodec3
Seek([in] aafPosition_t sampleFrame) | IAAFEssenceCodec3
SetEssenceAccess([in] IAAFEssenceAccess *pEssenceAccess) | IAAFEssenceCodec3
SetFlavour([in, ref] aafUID_constref flavour) | IAAFEssenceCodec3
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) | IAAFEssenceCodec3
WriteSamples([in] aafUInt32 nSamples,[in] aafUInt32 buflen,[in, size_is(buflen)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *samplesWritten,[out, ref] aafUInt32 *bytesWritten) | IAAFEssenceCodec3


Member List

IAAFEssenceCodec Member List
This is the complete list of members for IAAFEssenceCodec, including all inherited members.
CompleteWrite([in] IAAFSourceMob *pFileMob) | IAAFEssenceCodec
CountChannels([in] IAAFSourceMob *fileMob,[in, ref] aafUID_constref essenceKind,[in] IAAFEssenceStream *stream,[out] aafUInt16 *pNumChannels) | IAAFEssenceCodec
CountDataDefinitions([out] aafUInt32 *pCount) | IAAFEssenceCodec
CountFlavours([out] aafUInt32 *pCount) | IAAFEssenceCodec
CountSamples([in, ref] aafUID_constref essenceKind,[out] aafLength_t *pNumSamples) | IAAFEssenceCodec
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) | IAAFEssenceCodec
CreateDescriptorFromStream([in] IAAFEssenceStream *pStream,[in] IAAFSourceMob *pSourceMob) | IAAFEssenceCodec
GetCodecDisplayName([in, ref] aafUID_constref flavour,[out, string, size_is(bufSize)] aafCharacter *pName,[in] aafUInt32 bufSize) | IAAFEssenceCodec
GetCurrentEssenceStream([out] IAAFEssenceStream **ppStream) | IAAFEssenceCodec
GetDefaultEssenceFormat([out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec
GetEssenceDataID([out] aafUID_t *pEssenceDataID) | IAAFEssenceCodec
GetEssenceDescriptorID([out] aafUID_t *pDescriptorID) | IAAFEssenceCodec
GetEssenceFormat([in] IAAFEssenceFormat *pFormatTemplate,[out] IAAFEssenceFormat **ppNewFormat) | IAAFEssenceCodec
GetIndexedDataDefinition([in] aafUInt32 index,[out] aafUID_t *pDataDefID) | IAAFEssenceCodec
GetIndexedFlavourID([in] aafUInt32 index,[out] aafUID_t *pVariant) | IAAFEssenceCodec
GetIndexedSampleSize([in, ref] aafUID_constref essenceDefID,[in] aafPosition_t sampleOffset,[out] aafLength_t *pLength) | IAAFEssenceCodec
GetLargestSampleSize([in, ref] aafUID_constref essenceDefID,[out] aafLength_t *pLength) | IAAFEssenceCodec
GetMaxCodecDisplayNameLength([out] aafUInt32 *pBufSize) | IAAFEssenceCodec
GetSelectInfo([in] IAAFSourceMob *fileMob,[in] IAAFEssenceStream *stream,[out] aafSelectInfo_t *pSelectInfo) | IAAFEssenceCodec
Open([in] IAAFSourceMob *fileMob,[in] aafMediaOpenMode_t openMode,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) | IAAFEssenceCodec
PutEssenceFormat([in] IAAFEssenceFormat *pFormat) | IAAFEssenceCodec
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) | IAAFEssenceCodec
Seek([in] aafPosition_t sampleFrame) | IAAFEssenceCodec
SetEssenceAccess([in] IAAFEssenceAccess *pEssenceAccess) | IAAFEssenceCodec
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) | IAAFEssenceCodec
WriteSamples([in] aafUInt32 nSamples,[in] aafUInt32 buflen,[in, size_is(buflen)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *samplesWritten,[out, ref] aafUInt32 *bytesWritten) | IAAFEssenceCodec


Member List

IAAFEssenceContainer Member List
This is the complete list of members for IAAFEssenceContainer, including all inherited members.
CreateEssenceStream([in, string] aafCharacter_constptr pName,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream) | IAAFEssenceContainer
CreateEssenceStreamWriteOnly([in, string] aafCharacter_constptr pPath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream) | IAAFEssenceContainer
OpenEssenceStreamAppend([in, string] aafCharacter_constptr pFilePath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream) | IAAFEssenceContainer
OpenEssenceStreamReadOnly([in, string] aafCharacter_constptr pFilePath,[in] aafMobID_constptr pMobID,[out, retval] IAAFEssenceStream **ppEssenceStream) | IAAFEssenceContainer


Member List

IAAFEssenceDataStream2 Member List
This is the complete list of members for IAAFEssenceDataStream2, including all inherited members.
GetEssenceData([out, retval] IAAFEssenceData **ppEssenceData) | IAAFEssenceDataStream2
GetEssenceElementKey([out] aafUID_t *pEssenceElementKey) | IAAFEssenceDataStream2
Init([in] IUnknown *essenceData) | IAAFEssenceDataStream2
SetEssenceElementKey([in, ref] aafUID_constref eek,[in] aafUInt8 eeKind,[in] aafUInt8 eeCount,[in] aafUInt8 eeType,[in] aafUInt8 eeIndex,[in] aafSlotID_t sourceSlotID) | IAAFEssenceDataStream2


Member List

IAAFEssenceDataStream Member List
This is the complete list of members for IAAFEssenceDataStream, including all inherited members.
Init([in] IUnknown *essenceData) IAAFEssenceDataStream


Member List

IAAFEssenceStream Member List
This is the complete list of members for IAAFEssenceStream, including all inherited members.
FlushCache() | IAAFEssenceStream
GetLength([out] aafLength_t *pLength) | IAAFEssenceStream
GetPosition([out] aafPosition_t *pPosition) | IAAFEssenceStream
Read([in] aafUInt32 buflen,[out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t pBuffer,[out, ref] aafUInt32 *pBytesRead) | IAAFEssenceStream
Seek([in] aafPosition_t byteOffset) | IAAFEssenceStream
SeekRelative([in] aafInt32 byteOffset) | IAAFEssenceStream
SetCacheSize([in] aafUInt32 itsSize) | IAAFEssenceStream
Write([in] aafUInt32 bytes,[out, size_is(bytes)] aafDataBuffer_t buffer,[out, ref] aafUInt32 *bytesWritten) | IAAFEssenceStream


Member List

IAAFInterpolator Member List
This is the complete list of members for IAAFInterpolator, including all inherited members.
GetIndexedSupportedType([in] aafUInt32 index,[out] IAAFTypeDef **ppType) | IAAFInterpolator
GetNumTypesSupported([out] aafUInt32 *pCount) | IAAFInterpolator
GetParameter([out] IAAFParameter **ppParameter) | IAAFInterpolator
GetTypeDefinition([out] IAAFTypeDef **ppTypeDef) | IAAFInterpolator
InterpolateMany([in] aafRational_t *pStartInputValue,[in] aafRational_t *pInputStep,[in] aafUInt32 generateCount,[out] aafMemPtr_t pOutputValue,[out] aafUInt32 *pResultCount) | IAAFInterpolator
InterpolateOne([in] aafRational_t *pInputValue,[in] aafUInt32 valueSize,[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t pValue,[out] aafUInt32 *bytesRead) | IAAFInterpolator
SetParameter([in] IAAFParameter *pParameter) | IAAFInterpolator
SetTypeDefinition([in] IAAFTypeDef *pTypeDef) | IAAFInterpolator


Member List

IAAFMultiEssenceCodec Member List
This is the complete list of members for IAAFMultiEssenceCodec, including all inherited members.
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) | IAAFMultiEssenceCodec
MultiOpen([in] IAAFSourceMob *fileMob,[in] aafMediaOpenMode_t openMode,[in] IAAFEssenceStream *stream,[in] aafCompressEnable_t compEnable) | IAAFMultiEssenceCodec
ReadBlocks([in] aafDeinterleave_t inter,[in] aafUInt16 xferBlockCount,[out, size_is(xferBlockCount)] aafmMultiXfer_t *pTransferParm,[out, size_is(xferBlockCount)] aafmMultiResult_t *pResultParm) | IAAFMultiEssenceCodec
WriteBlocks([in] aafDeinterleave_t inter,[in] aafUInt16 xferBlockCount,[in, size_is(xferBlockCount)] aafmMultiXfer_t *pTransferParm,[out, size_is(xferBlockCount)] aafmMultiResult_t *pResultParm) | IAAFMultiEssenceCodec


Member List

IAAFPlugin Member List
This is the complete list of members for IAAFPlugin, including all inherited members.
CountDefinitions([out] aafUInt32 *pDefCount) | IAAFPlugin
CreateDescriptor([in] IAAFDictionary *pDictionary,[out] IAAFPluginDef **pPluginDef) | IAAFPlugin
GetIndexedDefinitionID([in] aafUInt32 index,[out] aafUID_t *pPluginID) | IAAFPlugin
GetIndexedDefinitionObject([in] aafUInt32 index,[in] IAAFDictionary *pDictionary,[out] IAAFDefObject **pDefObject) | IAAFPlugin
GetPluginDescriptorID([out] aafUID_t *pPluginID) | IAAFPlugin


Member List

IAAFPluginTypes Member List
This is the complete list of members for IAAFPluginTypes, including all inherited members.
_aafCheckVerbose_e enum name | IAAFPluginTypes
_aafCheckWarnings_e enum name | IAAFPluginTypes
_aafDeinterleave_e enum name | IAAFPluginTypes
aafCheckVerbose_e typedef | IAAFPluginTypes
aafCheckVerbose_t typedef | IAAFPluginTypes
aafCheckWarnings_e typedef | IAAFPluginTypes
aafCheckWarnings_t typedef | IAAFPluginTypes
aafDeinterleave_e typedef | IAAFPluginTypes
aafDeinterleave_t typedef | IAAFPluginTypes
aafSelectInfo_t typedef | IAAFPluginTypes
kAAFCheckNoWarnings enum value | IAAFPluginTypes
kAAFCheckPrintWarnings enum value | IAAFPluginTypes
kAAFCheckQuiet enum value | IAAFPluginTypes
kAAFCheckVerbose enum value | IAAFPluginTypes
kAAFdeinterleave enum value | IAAFPluginTypes
kAAFleaveInterleaved enum value | IAAFPluginTypes


Member List

  • IAAFPluginTypes
  • _aafSelectInfo_t
IAAFPluginTypes::_aafSelectInfo_t Member List
This is the complete list of members for IAAFPluginTypes::_aafSelectInfo_t, including all inherited members.
avgBitsPerSec | IAAFPluginTypes::_aafSelectInfo_t
hwAssisted | IAAFPluginTypes::_aafSelectInfo_t
isNative | IAAFPluginTypes::_aafSelectInfo_t
relativeLoss | IAAFPluginTypes::_aafSelectInfo_t
willHandleMDES | IAAFPluginTypes::_aafSelectInfo_t