Microsoft DirectX 9.0

ICodecAPI Interface

The ICodecAPI interface defines a standard way for applications and drivers to communicate with third-party hardware or software encoders that implement the interface. For more information about this interface, see Encoder API.

Note   This interface supersedes the IEncoderAPI interface, which has been deprecated.

It is expected that encoders will store profile and capability information in the system registry. This will enable applications to query the device during device enumeration. Default profiles are stored in HLKM\Software\Classes\CLSID\<category>\Profiles. Each profile is a registry key whose default string is a text description of the profile. Each value has a GUID name, followed by a string value containing the numeric GUID value. For example:

  HLKM\Software\Classes\CLSID\<category>\Profiles\DVD
    default "HQ DVD"
    REG_SZ {659e5ecc-b1b9-4d29-8304-86911fb33165} = "0"
    REG_SZ {3c2009e0-7598-4454-86ba-de8edc342645} = "1234"

where {...} is a property GUID that the application can map into its user interface. Microsoft is currently considering the definition of a set of standard profiles.

Default codec capabilities are stored under HLKM\Software\Classes\CLSID\<category>\Instance\<Filter CLSID>\Capabilities. Each value has a GUID name, followed by a string value containing the numeric GUID value. For example:

HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities
     default "My DVD encoder"
     REG_SZ_MULTI {659e5ecc-b1b9-4d29-8304-86911fb33165}

where {...} is a property GUID that the application can map into its user interface.

In addition to the methods inherited from IUnknown, the ICodecAPI interface exposes the following methods.

Method Description
GetAllSettings Saves the current encoder settings to a stream.
GetDefaultValue Retrieves the default value for a parameter, if one exists.
GetParameterRange Returns the valid range of values for a parameter.
GetParameterValues Returns the list of supported values for a given parameter.
GetValue Retrieves the current value of a specified parameter.
IsModifiable Queries whether a parameter can be changed.
IsSupported Queries whether a given parameter is supported.
RegisterForEvent Registers the application to receive a specified event from the encoder.
SetAllDefaults Returns all parameters to their default values.
SetAllDefaultsWithNotify Returns all parameters to their default values, and returns a list of the settings that have changed.
SetAllSettings Loads encoder settings from a stream and sets them on the encoder.
SetAllSettingsWithNotify Loads encoder settings from a stream, sets them on the encoder, and returns a list of the settings that have changed.
SetValue Sets the value of a parameter.
SetValueWithNotify Sets the value of a parameter, and returns a list of other settings that have changed as a result.
UnregisterForEvent Unregisters the application for a specified encoder event.

Remarks

The IEncoderAPI interface defined a set of GUIDs that identify various encoder parameters. The ICodecAPI interface will also support these GUIDs, but it is expected that a broader list of supported GUIDs will be defined for use with this interface. Please refer to the IEncoderAPI documentation for the list of the previously defined GUIDs.

See Also