KSPROPERTY_AUDIO_PEAKMETER2
Windows 8 では、ピークメーター ノードが最後にリセットされてからピークメーター ノード (KSNODETYPE_PEAKMETER) で発生した最大オーディオ信号レベルを報告する、KSPROPERTY_AUDIO_PEAKMETER2 プロパティが導入されました。
用法の要点テーブル
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい |
いいえ |
Filter または Pin インスタンスを使用したノード |
KSNODEPROPERTY_AUDIO_CHANNEL | LONG |
プロパティ値 (操作データ) は LONG 型で、ノードのピーク サンプル値を指定します。 ピーク値が負の場合は、その絶対値が使用されます。
戻り値
KSPROPERTY_AUDIO_PEAKMETER2 プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次のテーブルに、発生する可能性のあるエラー コードを示します。
状態コード | 意味 |
---|---|
STATUS_NOT_IMPLEMENTED |
KS フィルターは、ピークメーターの現在の値を返すことができません。 |
解説
KSPROPERTY_AUDIO_PEAKMETER2 プロパティは、KSPROPERTY_AUDIO_PEAKMETER プロパティとほぼ同じです。 KSPROPERTY_AUDIO_PEAKMETER2 プロパティは、ピン トポロジのハードウェア使用状況測定を改善するために、Windows 8 で導入されました。 レガシ KSPROPERTY_AUDIO_PEAKMETER プロパティは非推奨のため、今後は使用しないでください。
SignedMinimum を (0x8000ではなく) LONG_MIN に設定し、SignedMaximum を (0x7fffではなく) LONG_MAX に設定する必要があります。 また、ピークメーターの値はこのスケールに対する相対値であり、スケールは振幅に対して線形であることにご注意ください。
そのため、たとえば、負のピークと正のピークがそれぞれ -1 と +1 の波形がある場合 (-1 から +1 までのスケールの場合)、LONG_MAX のピークメーター値は、特定の時間枠に対する最大波形値を正確に報告します。 逆に、すべての波形の値が 0 であるサイレンスを報告するには、ゼロ (0) のピークメーター値を使用する必要があります。 しかし、ピーク値がゼロ (0) から LONG_MAX の間に該当する波形の場合は、報告される波形値は元の波形値から線形に減少します。
したがって、-0.5 と +0.5 の間で振れる波形の場合 (-1 から +1 までのスケールの場合)、ピークメーター値を LONG_MAX/2 に設定する必要があります。
KS オーディオ フィルターは、このプロパティ要求を同期処理します。 要求が成功すると、ピークメーターはリセットされ、累積ピーク値が 0 に初期化されます。 要求が成功しない場合、ピークメーターは変更されません。
システムは、IRQL PASSIVE_LEVEL で KSPROPERTY_AUDIO_PEAKMETER2 プロパティのIOCTL_KS_PROPERTY 要求を送信します。
要件
ヘッダー |
ksmedia.h (Ksmedia.h をインクルード) |