KSPROPERTY_AEC_STATUS
Die KSPROPERTY_AEC_STATUS-Eigenschaft wird verwendet, um die status eines AEC-Knotens (KSNODETYPE_ACOUSTIC_ECHO_CANCEL) zu überwachen. Dies ist eine optionale Eigenschaft eines AEC-Knotens.
Nutzungszusammenfassungstabelle
Herunterladen | Set | Ziel | Eigenschaftendeskriptortyp | Eigenschaftswerttyp |
---|---|---|---|---|
Ja |
Nein |
Pin |
ULONG |
Der Eigenschaftswert (Vorgangsdaten) ist vom Typ ULONG. Dies ist ein status Wert, der auf das bitweise OR eines oder mehrerer Flagbits in der linken Spalte der folgenden Tabelle festgelegt werden kann, die in der Headerdatei Ksmedia.h definiert sind. Die entsprechenden DSCFX_AEC_STATUS Flags aus der Headerdatei Dsound.h werden in der rechten Spalte der Tabelle angezeigt. Informationen zu diesen Flags finden Sie in der Microsoft Windows SDK-Dokumentation.
AEC-status-Flag | Wert | DSCFX_AEC_STATUS-Flag |
---|---|---|
AEC_STATUS_FD_HISTORY_UNINITIALIZED |
0x0 |
DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED |
AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED |
0x1 |
DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED |
AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED |
0x2 |
DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED |
AEC_STATUS_FD_CURRENTLY_CONVERGED |
0x8 |
DSCFX_AEC_STATUS_CURRENTLY_CONVERGED |
Rückgabewert
Eine KSPROPERTY_AEC_STATUS-Eigenschaftsanforderung gibt STATUS_SUCCESS zurück, um anzugeben, dass sie erfolgreich abgeschlossen wurde. Andernfalls gibt die Anforderung einen geeigneten Fehler status Code zurück.
Bemerkungen
Die drei am wenigsten signifikanten Bits in den AEC-status-Flags (siehe vorherige Tabelle) stellen den Konvergenzverlauf (CH) des AEC-Algorithmus dar. Die CH-status Bits können von einer Microsoft DirectSound-Anwendung verwendet werden, um zu bestimmen, ob der Algorithmus konvergiert ist und ob er seit beginn der Datenverarbeitung im konvergenten Zustand geblieben ist. Abhängig von der Audiohardware kann der AEC-Algorithmus möglicherweise nicht konvergieren. In diesem Fall wird der resultierende Erfassungspuffer wahrscheinlich das Echo der Lautsprecher enthalten.
Wenn der Filter mit dem AEC-Knoten erstellt oder der Knoten zurückgesetzt wird, legt der AEC-Algorithmus zunächst die drei CH-status Bits auf Null fest. Diese Einstellung stellt den nicht initialisierten Zustand AEC_STATUS_FD_HISTORY_UNINITIALIZED dar.
Nachdem der AEC-Algorithmus konvergiert wurde, wechselt der CH-status in den konvergenten Zustand, AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED. Wenn der AEC-Algorithmus jemals die Konvergenz verliert, wechselt der CH-status in den divergierten Zustand, AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED. Obwohl der status höchstwahrscheinlich vom konvergenten Zustand in den divergierten Zustand wechselt, kann er auch direkt vom nicht initialisierten Zustand in den divergierten Zustand wechseln. Nachdem der CH-status in den abweichenden Zustand gewechselt ist, verbleibt er in diesem Zustand, bis der Algorithmus zurückgesetzt oder ausgehungert wird.
Wenn der AEC-Systemfilter den Hunger an einem seiner vier Stecknadeln erkennt ( Erfassen, Ausfangen, Rendern in oder Rendern aus ), setzt er seinen internen Zustand zurück, einschließlich des Konvergenzverlaufs.
Beachten Sie, dass Bit 2 der drei CH-status Bits derzeit nicht verwendet wird.
Alternativ zur Verwendung der CH-status Bits kann die Anwendung die echtzeitbasierte Konvergenz-status überwachen, indem sie das AEC_STATUS_FD_CURRENTLY_CONVERGED Flagbit überprüft. Wenn dieses Bit festgelegt ist, ist der Algorithmus derzeit konvergiert. Der Algorithmus kann vorübergehend die Konvergenz verlieren, wenn Änderungen im akustischen Pfad auftreten. Das Echtzeitkonververzzflag wird gefiltert, um zu verhindern, dass solche vorübergehenden Verluste die CH-status Bits unangemessen in den DSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED Zustand wechseln.
Anforderungen
Header |
Ksmedia.h (einschließlich Ksmedia.h) |