Microsoft DirectX 9.0 |
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