KSPROPERTY_RTAUDIO_POSITIONREGISTER
KSPROPERTY_RTAUDIO_POSITIONREGISTER プロパティは、特定のストリームのオーディオ デバイスの位置レジスターを、クライアントがアクセスできる仮想メモリの場所にマップします。
次の表は、このプロパティの機能をまとめたものです。
用法の要点テーブル
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい |
いいえ |
ピン留めする |
プロパティ記述子 (インスタンス データ) は、KSPROPERTY 構造体を含む KSRTAUDIO_HWREGISTER_PROPERTY 構造体です。 要求を送信する前に、クライアントはレジスタの優先ベース アドレスを示す値を持つ構造体を読み込みます。
プロパティ値 (操作データ) は、プロパティ ハンドラーがハードウェア位置レジスターをマップした仮想アドレスを書き込む KSRTAUDIO_HWREGISTER 構造体です。 クライアントは、このアドレスからレジスタを直接読み取ることができます。 KSRTAUDIO_HWREGISTER 構造体は、位置レジスターがそれ自体をインクリメントする速度も指定します。
戻り値
KSPROPERTY_RTAUDIO_POSITIONREGISTER プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切な失敗状態コードを返します。
解説
通常、オーディオ アプリケーションはオーディオ ストリームの現在位置を監視する必要があります。 この位置は、ストリームの先頭からのバイト オフセットとして指定されます。
レンダリング ストリームの場合、ストリーム位置は、デジタルからアナログへのコンバーター (DAC) を介して現在再生されているオーディオ フレームのバイト オフセットです。
キャプチャ ストリームの場合、ストリーム位置は、アナログからデジタルへのコンバーター (ADC) を介して現在記録されているオーディオ フレームのバイト オフセットです。
一部のオーディオ デバイスには、ストリームの実行中に継続的にインクリメントされる位置レジスターが含まれています。 すべてのデジタルおよびアナログ機能を 1 つのチップに組み込むオーディオ デバイスの場合、位置レジスターは通常、現在のストリーム位置を直接示します。
ただし、デジタル機能とアナログ機能を別々のバス コントローラーおよびコーデック チップに分割するチップセットの場合、位置レジスターは通常、バス コントローラー チップ内にあり、以下を示します。
レンダリング ストリームの場合、位置レジスターは、バス コントローラーがコーデックに書き込んだ最後のオーディオ フレームのバイト オフセットを示します。
キャプチャ ストリームの場合、位置レジスターは、バス コントローラーがコーデックに書き込んだ最後のオーディオ フレームのバイト オフセットを示します。
どちらの場合も、位置レジスターの値にはコーデック経由の遅延は含まれません。 クライアントがコーデック遅延を決定した場合は、位置レジスター値にこの遅延を追加して、実際のストリーム位置 (DAC または ADC) を推定できます。 コーデック経由の最悪の遅延を指定する CodecDelay 値の場合は、KSPROPERTY_RTAUDIO_HWLATENCY プロパティをクエリできます。
成功した場合、KSPROPERTY_RTAUDIO_POSITIONREGISTER プロパティ要求は、位置レジスターを、クライアントで指定されたユーザー モードまたはカーネル モードからクライアントからアクセスできる仮想メモリ アドレスにマップします。 その後、クライアントはこのアドレスから読み取り、位置レジスターの現在の値を取得します。
オーディオ ハードウェアが仮想アドレスにマップできる位置レジスターをサポートしていない場合、プロパティ要求は失敗します。 この場合クライアントは、KSPROPERTY_AUDIO_POSITION プロパティからの位置を決定する必要があります。
位置レジスターのマッピングは、ピンが閉じると破棄されます。 クライアントは、開かれたピンの有効期間中に 1 回だけレジスターをマップでき、その後のピンの位置レジスターを再マップする呼び出しは失敗します。
通常、位置レジスターの読み取りは、ユーザー モード クライアントのユーザー モードとカーネル モードの切り替えを必要とする KSPROPERTY_AUDIO_POSITION 要求を送信するよりも高速です。
要件
バージョン |
Windows Vista 以降の Windows オペレーティング システムで使用できます。 |
ヘッダー |
Ksmedia.h |