iCodecAPI 接口 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia 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,值为 VARIANTVARIANT 数据的解释取决于属性 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"
其中 {...} 是应用程序可以映射到其用户界面的属性 GUID。 Microsoft 目前正在考虑定义一组标准配置文件。

默认编解码器功能存储在 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 {...}
其中 {...} 是应用程序可以映射到其用户界面的属性 GUID。

要求

   
最低受支持的客户端 Windows XP SP2 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2003 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)

另请参阅

Windows Media Center Edition 的解码器设置

编码器 API