KSPROPERTY_AEC_STATUS
KSPROPERTY_AEC_STATUS プロパティは、AEC ノード (KSNODETYPE_ACOUSTIC_ECHO_CANCEL) の状態を監視するために使用されます。 これは、AEC ノードの省略可能なプロパティです。
用法の要点テーブル
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい |
いいえ |
ピン留めする |
ULONG |
プロパティ値 (操作データ) は ULONG 型です。 これは、次のテーブルの左列にある 1 つ以上のフラグ ビット (ヘッダー ファイル Ksmedia.h で定義) のビット論理和に設定できる状態値です。 ヘッダー ファイル Dsound.h の対応する DSCFX_AEC_STATUS フラグは、テーブルの右側の列に表示されています。 これらのフラグの詳細については、Microsoft Windows SDKのドキュメントを参照してください。
AEC 状態フラグ | Value | DSCFX_AEC_STATUS フラグ |
---|---|---|
AEC_STATUS_FD_HISTORY_UNINITIALIZED |
0x0 |
DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED |
AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED |
0箸1 |
DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED |
AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED |
0等2 |
DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED |
AEC_STATUS_FD_CURRENTLY_CONVERGED |
0酒8 |
DSCFX_AEC_STATUS_CURRENTLY_CONVERGED |
戻り値
KSPROPERTY_AEC_STATUS プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。
解説
AEC 状態フラグの下位 3 ビット (前のテーブルを参照) は、AEC アルゴリズムの収束履歴 (CH) を表します。 CH 状態ビットを Microsoft DirectSound アプリケーションで使用すると、アルゴリズムが収束したかどうか、および処理の開始時間から収束状態が続いているかどうかを判断できます。 オーディオ ハードウェアによっては、AEC アルゴリズムは収束に失敗する場合があります。その場合、結果として得られるキャプチャ バッファーにスピーカーからのエコーが含まれる可能性があります。
AEC ノードを含むフィルターが作成されるか、ノードがリセットされると、AEC アルゴリズムは 3 つの CH 状態ビットを 0 に初期設定します。 この設定は、初期化されていない状態 (AEC_STATUS_FD_HISTORY_UNINITIALIZED) を表します。
AEC アルゴリズムが収束した後、CH 状態は収束状態 (AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED) に切り替わります。 AEC アルゴリズムが収束を失った場合、CH 状態は分岐状態 (AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED) に切り替わります。 状態は収束状態から分岐状態に切り替わる可能性が最も高くなりますが、初期化されていない状態から分岐状態に直接切り替わることもあります。 CH 状態は分岐状態に切り替わった後、アルゴリズムがリセットされるまで、または枯渇が検出されるまで、その状態を維持します。
AEC システム フィルターは 4 つのピン (キャプチャ イン、キャプチャ アウト、レンダリング イン、またはレンダリング アウト) のいずれかで枯渇を検出すると、収束履歴を含む内部状態をリセットします。
3 つの CH 状態ビットのビット 2 は現在使用されていないことにご注意ください。
CH 状態ビットを使用する代わりに、アプリケーションは、AEC_STATUS_FD_CURRENTLY_CONVERGED フラグ ビットを確認することで、リアルタイムの収束状態を監視できます。 このビットが設定されている場合、アルゴリズムは現在収束しています。 音響パスに変更が生じると、アルゴリズムの収束が一時的に失われる可能性があります。 リアルタイムの収束フラグをフィルター処理して、このような一時的な喪失によって CH 状態ビットがDSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED 状態に不適切に切り替わるのを防ぎます。
要件
ヘッダー |
ksmedia.h (Ksmedia.h をインクルード) |