Compartir a través de


KSPROPERTY_AEC_STATUS

La propiedad KSPROPERTY_AEC_STATUS se usa para supervisar el estado de un nodo AEC (KSNODETYPE_ACOUSTIC_ECHO_CANCEL). Se trata de una propiedad opcional de un nodo AEC.

Tabla de resumen de uso

Obtener Set Destino Tipo de descriptor de propiedad Tipo de valor de propiedad

No

Anclar

KSNODEPROPERTY

ULONG

El valor de propiedad (datos de operación) es de tipo ULONG. Se trata de un valor de estado que se puede establecer en el or bit a bit de uno o varios de los bits de marca de la columna izquierda de la tabla siguiente, que se definen en el archivo de encabezado Ksmedia.h. Las marcas de DSCFX_AEC_STATUS correspondientes del archivo de encabezado Dsound.h se muestran en la columna derecha de la tabla. Consulte la documentación de Microsoft Windows SDK para obtener información sobre estas marcas.

Marca de estado de AEC Value marca de DSCFX_AEC_STATUS

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

Valor devuelto

Una solicitud de propiedad KSPROPERTY_AEC_STATUS devuelve STATUS_SUCCESS para indicar que se ha completado correctamente. De lo contrario, la solicitud devuelve un código de estado de error adecuado.

Observaciones

Los tres bits menos significativos de las marcas de estado de AEC (consulte la tabla anterior) representan el historial de convergencia (CH) del algoritmo AEC. Una aplicación de Microsoft DirectSound puede usar los bits de estado ch para determinar si el algoritmo ha convergedo y también si ha permanecido en el estado convergente desde el momento en que comenzó a procesar los datos. Según el hardware de audio, es posible que el algoritmo AEC no converja, en cuyo caso es probable que el búfer de captura resultante incluya el eco de los altavoces.

Cuando se crea el filtro que contiene el nodo AEC o se restablece el nodo, el algoritmo AEC establece inicialmente los tres bits de estado CH en cero. Esta configuración representa el estado no inicializado, AEC_STATUS_FD_HISTORY_UNINITIALIZED.

Una vez que el algoritmo AEC converge, el estado CH cambia al estado convergente, AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED. Si el algoritmo AEC pierde la convergencia, el estado CH cambia al estado diverged, AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED. Aunque es más probable que el estado cambie al estado diverged del estado convergente, también podría cambiar directamente del estado no inicializado al estado diverged. Una vez que el estado ch ha cambiado al estado divergente, permanecerá en ese estado hasta que se restablezca el algoritmo o se detecte un colapso.

Cuando el filtro del sistema AEC detecta el colapso en cualquiera de sus cuatro patillas, captura, representación o representación, restablece su estado interno, incluido el historial de convergencia.

Tenga en cuenta que el bit 2 de los tres bits de estado CH no se usa actualmente.

Como alternativa al uso de los bits de estado CH, la aplicación puede supervisar el estado de convergencia en tiempo real comprobando el bit de marca AEC_STATUS_FD_CURRENTLY_CONVERGED. Si se establece este bit, el algoritmo se converge actualmente. El algoritmo puede perder la convergencia temporalmente cuando se producen cambios en la ruta acústica. La marca de convergencia en tiempo real se filtra para evitar que estas pérdidas momentáneas cambien de forma inapropiada los bits de estado CH al estado DSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED.

Requisitos

Encabezado

Ksmedia.h (incluye Ksmedia.h)

Vea también

KSNODEPROPERTY

KSNODETYPE_ACOUSTIC_ECHO_CANCEL