[The usage of the CodecAPI feature with DirectShow is no longer recommended. DirectShow usage has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 11 and Windows 10. Instead of DirectShow, Microsoft strongly recommends when possible that new code use MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
The ICodecAPI interface sets and retrieves settings on an encoder or decoder filter.
Note
APIs declared in strmif.h are not supported for Universal Windows Platform (UWP) apps. To use ICodecAPI in a UWP app, use the version declared in icodecapi.h.
InheritanceThe ICodecAPI interface inherits from the IUnknown interface. ICodecAPI also has these types of members:
MethodsThe ICodecAPI interface has these methods.
ICodecAPI::GetAllSettingsThe GetAllSettings method gets the codec's current properties and writes them to a stream. (ICodecAPI.GetAllSettings)
ICodecAPI::GetDefaultValueThe GetDefaultValue method gets the default value of a codec property. (ICodecAPI.GetDefaultValue)
ICodecAPI::GetParameterRangeThe GetParameterRange method gets the range of values for a codec property. (ICodecAPI.GetParameterRange)
ICodecAPI::GetParameterValuesThe GetParameterValues method gets the list of possible values for a codec property. (ICodecAPI.GetParameterValues)
ICodecAPI::GetValueThe GetValue method gets the current value of a codec property.
ICodecAPI::IsModifiableThe IsModifiable method queries whether a codec property can be changed, given the codec's current configuration. (ICodecAPI.IsModifiable)
ICodecAPI::IsSupportedThe IsSupported method queries whether a codec supports a given property. (ICodecAPI.IsSupported)
ICodecAPI::RegisterForEventThe RegisterForEvent method registers the application to receive events from the codec. (ICodecAPI.RegisterForEvent)
ICodecAPI::SetAllDefaultsThe SetAllDefaults method resets all codec properties to their default values. (ICodecAPI.SetAllDefaults)
ICodecAPI::SetAllDefaultsWithNotifyThe SetAllDefaultsWithNotify method resets all codec properties to their default values, and returns a list of the properties that changed. (ICodecAPI.SetAllDefaultsWithNotify)
ICodecAPI::SetAllSettingsThe SetAllSettings method reads codec properties from a stream and sets them on the codec. (ICodecAPI.SetAllSettings)
ICodecAPI::SetAllSettingsWithNotifyThe SetAllSettingsWithNotify method reads codec properties from a stream, sets them on the codec, and returns a list of the properties that changed. (ICodecAPI.SetAllSettingsWithNotify)
ICodecAPI::SetValueThe SetValue method sets the value of a codec property. (ICodecAPI.SetValue)
ICodecAPI::SetValueWithNotifyThe SetValueWithNotify method sets a property on a codec and returns a list of other properties that changed as a result. (ICodecAPI.SetValueWithNotify)
ICodecAPI::UnregisterForEventThe UnregisterForEvent method unregisters the application for a specified encoder event. (ICodecAPI.UnregisterForEvent)
This interface defines a generic mechanism for setting properties on a codec (encoder or decoder). A codec property is a key/value pair, where the key is a GUID and the value is a VARIANT. The interpretation of the VARIANT data depends on the property GUID. For a list of codec property GUIDs, see Codec API Properties.
Codec ProfilesCodecs can optionally store profile and capability information in the system registry. This information enables applications to query the device during device enumeration. Default profiles are stored in the following registry key:
HKEY_LOCAL_MACHINE 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:
C++HLKM\Software\Classes\CLSID\<category>\Profiles\DVD default "HQ DVD" REG_SZ {...} = "0" REG_SZ {...} = "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:
C++HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities default "My DVD encoder" REG_SZ_MULTI {...}
where {...} is a property GUID that the application can map into its user interface.
Requirements Requirement Value Minimum supported client Windows XP with SP2 [desktop apps | UWP apps] Minimum supported server Windows Server 2003 R2 [desktop apps | UWP apps] Target Platform Windows Header strmif.h (include Dshow.h) See alsoRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4