Freigeben über


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

KSNODEPROPERTY

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)

Siehe auch

KSNODEPROPERTY

KSNODETYPE_ACOUSTIC_ECHO_CANCEL