KSPROPERTY_AUDIO_PEAKMETER2
Windows 8 引入了 KSPROPERTY_AUDIO_PEAKMETER2 属性,该属性报告自上次重置峰值计节点 (KSNODETYPE_PEAKMETER) 以来在峰值计节点发生的最大音频信号级别。
使用情况摘要表
获取 | 设置 | 目标 | 属性描述符类型 | 属性值类型 |
---|---|---|---|---|
是 |
否 |
通过筛选器或引脚实例的节点 |
KSNODEPROPERTY_AUDIO_CHANNEL | LONG |
属性值(操作数据)的类型为 LONG,指定节点上的峰值样本值。 如果峰值为负值,则使用其绝对值。
返回值
KSPROPERTY_AUDIO_PEAKMETER2 属性请求返回 STATUS_SUCCESS,以指示它已成功完成。 否则,请求将返回适当的错误状态代码。 下表中显示了可能的错误状态代码。
状态代码 | 含义 |
---|---|
STATUS_NOT_IMPLEMENTED |
KS 筛选器无法返回峰值计的当前值。 |
注解
KSPROPERTY_AUDIO_PEAKMETER2 属性与 KSPROPERTY_AUDIO_PEAKMETER 属性几乎完全相同。 Windows 8 引入了 KSPROPERTY_AUDIO_PEAKMETER2 属性,以提供对引脚拓扑进行改进的硬件计数。 旧 KSPROPERTY_AUDIO_PEAKMETER 属性已弃用,不应再使用。
SignedMinimum 必须设置为 LONG_MIN(而不是 0x8000),并且 SignedMaximum 必须设置为 LONG_MAX(而不是 0x7fff)。 此外,请注意,峰值计值相对于此刻度,刻度以振幅线性表示。
因此,例如,如果波次的负峰值和正峰值分别为 -1 和 +1(从 -1 到 +1),则峰值计值 LONG_MAX 准确报告给定时间窗口的最大波次值。 相反,应使用峰值计值零 (0) 报告静音,其中所有波次的值均为零。 但是,对于峰值介于零 (0) 和 LONG_MAX 之间的波次,报告的波次值将从原始值线性减少。
因此,对于在 -0.5 和 +0.5 之间波动的波次(在从 -1 到 +1 的刻度上),峰值计值必须设置为 LONG_MAX/2。
KS 音频筛选器同步处理此属性请求。 如果请求成功,它会重置峰值计,将累积的峰值值初始化为零。 如果请求未成功,则不会更改峰值计。
系统在 IRQL PASSIVE_LEVEL 发送 KSPROPERTY_AUDIO_PEAKMETER2 属性的 IOCTL_KS_PROPERTY 请求。
要求
标头 |
Ksmedia.h(包括 Ksmedia.h) |