次の方法で共有


KSNODETYPE_PEAKMETER

KSNODETYPE_PEAKMETER ノードは、ハードウェアのピークメーターを表します。 KS ピークメーター ノードには 1 つの入力ピンと 1 つの出力ピンがあり、2 つのピンは同じデータ形式を共有します。

KS ピークメーターは、最後にピークメーターが 0 にリセットされた時点からオーディオ信号の最大値を内部的に記録します。 ピークメーターは、IOCTL_KS_PROPERTY が KSPROPERTY_AUDIO_PEAKMETER2 プロパティの取得を要求すると、自動的に 0 にリセットされます。

ピークメーターにはハードウェアのサポートが必要です。 ソフトウェアのピークメーターは実現不可能です。その理由は、アダプター ドライバーが、ラインイン入力、マイク入力、または再生チャンネルと組み合わせたその他の入力に存在する信号にアクセスできないためです。

Microsoft では、ピークメーター ノードを、ストリームがフィルター内を通過する最後のノードにすることをお勧めします。 レンダー ストリームでは、オーディオ アダプターは通常、マスター出力の KSNODETYPE_MUTE ノードまたは KSNODETYPE_VOLUME ノードの後にピークメーター ノードを接続します。 キャプチャ ストリームや、フィルターにピークメーター ノードが組み込まれているその他のストリームにも、同じアプローチが適用されます。

オーディオ アダプターでは、ピークメーター ノードに "KSAUDFNAME_PEAKMETER" という名前を付ける必要があります。

ピークメーター ノードでは、次のテーブルに示すプロパティ フラグ (KSPROPERTY を参照) に対応するプロパティ ハンドラーを提供する必要があります。

フラグ名 意味

KSPROPERTY_TYPE_GET

ハードウェア ピークメーターの現在の値を返します。

KSPROPERTY_TYPE_BASICSUPPORT

KSPROPERTY_AUDIO_PEAKMETER の場合 - 0x7fff に 0x8000 のデータ範囲を返します。これは、16 ビット デジタル オーディオのデータ範囲です。 オペレーティング システムが正の値を受け取ることができるようにするには、上位 16 ビットを 0 に設定する必要があります。 KSPROPERTY_AUDIO_PEAKMETER は非推奨であるため、KSPROPERTY_AUDIO_PEAKMETER2 を代わりに使用する必要があることにご注意ください。

KSPROPERTY_AUDIO_PEAKMETER2 の場合 - LONG_MAX に LONG_MIN のデータ範囲を返します。

プロパティ ハンドラーでは、入力パラメーターと左右のチャンネル情報を検証する必要があります。

ピークメーター ノードでは、次のテーブルのプロパティもサポートする必要があります。

プロパティ名 説明

KSPROPERTY_AUDIO_PEAKMETER2

ピークメーター コントロールを表します。

KSPROPERTY_AUDIO_CPU_RESOURCES

指定したノードの機能でホスト CPU を使用するかどうかを示します。