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 |
---|---|---|---|---|
Sí |
No |
Anclar |
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) |