编码器属性集

本部分介绍特定于编码器和编解码器 API 的属性集,这些属性集适用于在 Microsoft Windows 98/Me、Windows 2000 和 Windows XP 及更高版本中使用 WDM 内核流式处理服务的编码器微型驱动程序。

每个属性的引用页都包含一个包含列标题的表,如下所示。

获取 设置 目标 属性描述符类型 属性值类型

这些标题具有以下含义:

  • Get

    目标 KS 对象是否支持 KSPROPERTY_TYPE_GET 属性请求?

  • 设置

    目标 KS 对象是否支持 KSPROPERTY_TYPE_SET 属性请求?

  • Target

    这是向其发送属性请求的 KS 对象。 视频编码器属性的目标是筛选器或引脚。 (属性请求通过其内核句柄指定目标对象。)

  • 属性描述符类型

    属性描述符指定要对该属性执行的属性和操作。 描述符始终以 KSPROPERTY 结构开头。

  • 属性值类型

    属性具有值,此值的类型取决于 属性。 例如,可以处于两种状态之一(on 或 off)的属性通常具有 BOOL 值。 可以假定整数值从 0x0 到 0xFFFFFFFF 的属性可能具有 ULONG 值。 更复杂的属性可能具有数组或结构值。

上述属性描述符和属性值是 KS 属性、事件和方法中讨论的特定于实例规范和操作数据缓冲区的属性版本。

属性请求使用以下标志之一来指定要对 属性执行的操作:

  • KSPROPERTY_TYPE_BASICSUPPORT

  • KSPROPERTY_TYPE_GET

  • KSPROPERTY_TYPE_SET

所有筛选器和固定对象都支持对其属性执行基本支持操作。 它们是否支持 getSet 操作取决于 属性。 表示筛选器或引脚对象的固有功能的属性可能只需要 获取 操作。 表示可配置设置的属性可能只需要 Set 操作,但 获取 操作可能也可用于读取当前设置。 有关对视频编码器属性使用 get、set 和 basic-support 操作的详细信息,请参阅 KS 属性

每个属性的说明中的表指示是否需要视频编码器微型驱动程序来支持读取或写入属性。 视频编码器微型驱动程序应返回STATUS_NOT_SUPPORTED,以响应获取或设置微型驱动程序不支持的属性的请求。

以下属性集中的每个属性都包含一个必须由视频编码器微型驱动程序实现的属性。 也就是说,实际上每个属性都获取自己的集,因此根据需要在KSPROPERTY_SET结构中KSPROPERTY_ITEM成员的 PropertyId 成员中指定 0。

以下属性集属于编解码器 API:

CODECAPI_VIDEO_ENCODER

CODECAPI_AUDIO_ENCODER

CODECAPI_SETALLDEFAULTS

CODECAPI_ALLSETTINGS

CODECAPI_SUPPORTSEVENTS

CODECAPI_CURRENTCHANGELIST

以下属性集属于编码器 API:

ENCAPIPARAM_BITRATE

ENCAPIPARAM_BITRATE_MODE

ENCAPIPARAM_PEAK_BITRATE