iCodecAPI 接口 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
ICodecAPI 接口设置和检索编码器或解码器筛选器上的设置。
注意
通用 Windows 平台 (UWP) 应用不支持在 strmif.h 中声明的 API。 若要在 UWP 应用中使用 ICodecAPI,请使用 icodecapi.h 中声明的版本。
继承
ICodecAPI 接口继承自 IUnknown 接口。 ICodecAPI 还具有以下类型的成员:
方法
ICodecAPI 接口具有以下方法。
ICodecAPI::GetAllSettings GetAllSettings 方法获取编解码器的当前属性并将其写入流。 (ICodecAPI.GetAllSettings) |
ICodecAPI::GetDefaultValue GetDefaultValue 方法获取编解码器属性的默认值。 (ICodecAPI.GetDefaultValue) |
ICodecAPI::GetParameterRange GetParameterRange 方法获取编解码器属性的值范围。 (ICodecAPI.GetParameterRange) |
ICodecAPI::GetParameterValues GetParameterValues 方法获取编解码器属性的可能值列表。 (ICodecAPI.GetParameterValues) |
ICodecAPI::GetValue GetValue 方法获取编解码器属性的当前值。 |
ICodecAPI::IsModifiable 根据编解码器的当前配置,IsModifiable 方法查询编解码器属性是否可以更改。 (ICodecAPI.IsModifiable) |
ICodecAPI::IsSupported IsSupported 方法查询编解码器是否支持给定属性。 (ICodecAPI.IsSupported) |
ICodecAPI::RegisterForEvent RegisterForEvent 方法注册应用程序以从编解码器接收事件。 (ICodecAPI.RegisterForEvent) |
ICodecAPI::SetAllDefaults SetAllDefaults 方法将所有编解码器属性重置为其默认值。 (ICodecAPI.SetAllDefaults) |
ICodecAPI::SetAllDefaultsWithNotify SetAllDefaultsWithNotify 方法将所有编解码器属性重置为其默认值,并返回已更改的属性列表。 (ICodecAPI.SetAllDefaultsWithNotify) |
ICodecAPI::SetAllSettings SetAllSettings 方法从流中读取编解码器属性,并在编解码器上设置这些属性。 (ICodecAPI.SetAllSettings) |
ICodecAPI::SetAllSettingsWithNotify SetAllSettingsWithNotify 方法从流中读取编解码器属性,在编解码器上设置它们,并返回已更改的属性列表。 (ICodecAPI.SetAllSettingsWithNotify) |
ICodecAPI::SetValue SetValue 方法设置编解码器属性的值。 (ICodecAPI.SetValue) |
ICodecAPI::SetValueWithNotify SetValueWithNotify 方法在编解码器上设置属性,并返回结果更改的其他属性的列表。 (ICodecAPI.SetValueWithNotify) |
ICodecAPI::UnregisterForEvent UnregisterForEvent 方法取消注册指定编码器事件的应用程序。 (ICodecAPI.UnregisterForEvent) |
注解
此接口定义一种通用机制,用于设置编解码器 (编码器或解码器) 的属性。 编解码器属性是键/值对,其中键为 GUID,值为 VARIANT。 VARIANT 数据的解释取决于属性 GUID。 有关编解码器属性 GUID 的列表,请参阅 编解码器 API 属性。
编解码器配置文件
编解码器可以选择在系统注册表中存储配置文件和功能信息。 此信息使应用程序能够在设备枚举期间查询设备。 默认配置文件存储在以下注册表项中:HKEY_LOCAL_MACHINE Software Classes CLSID Category Profiles每个配置文件都是一个注册表项,其默认字符串是配置文件的文本说明。 每个值都有一个 GUID 名称,后跟一个包含数字 GUID 值的字符串值。 例如:
C++ |
---|
HLKM\Software\Classes\CLSID\<category>\Profiles\DVD default "HQ DVD" REG_SZ {...} = "0" REG_SZ {...} = "1234" |
默认编解码器功能存储在 HLKM\Software\Classes\CLSID<category>\Instance<筛选 CLSID>\Capabilities。 每个值都有一个 GUID 名称,后跟一个包含数字 GUID 值的字符串值。 例如:
C++ |
---|
HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities default "My DVD encoder" REG_SZ_MULTI {...} |
要求
最低受支持的客户端 | Windows XP SP2 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2003 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |