Partilhar via


KSPROPERTY_AEC_STATUS

A propriedade KSPROPERTY_AEC_STATUS é usada para monitorar o status de um nó AEC (KSNODETYPE_ACOUSTIC_ECHO_CANCEL). Essa é uma propriedade opcional de um nó AEC.

Tabela de Resumo de Uso

Obter Definir Destino Tipo de descritor de propriedade Tipo de valor da propriedade

Sim

Não

Pin

KSNODEPROPERTY

ULONG

O valor da propriedade (dados de operação) é do tipo ULONG. Esse é um valor status que pode ser definido como OR bit a bit de um ou mais bits de sinalizador na coluna esquerda da tabela a seguir, que são definidos no arquivo de cabeçalho Ksmedia.h. Os sinalizadores de DSCFX_AEC_STATUS correspondentes do arquivo de cabeçalho Dsound.h são mostrados na coluna à direita da tabela. Consulte a documentação do SDK do Microsoft Windows para obter informações sobre esses sinalizadores.

Sinalizador de status AEC Valor sinalizador 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 retornado

Uma solicitação de propriedade KSPROPERTY_AEC_STATUS retorna STATUS_SUCCESS para indicar que foi concluída com êxito. Caso contrário, a solicitação retornará um erro apropriado status código.

Comentários

Os três bits menos significativos nos sinalizadores de status da AEC (consulte tabela anterior) representam o CH (histórico de convergência) do algoritmo AEC. Os bits de status ch podem ser usados por um aplicativo Microsoft DirectSound para determinar se o algoritmo convergiu e também se ele permaneceu no estado convergido desde o momento em que começou a processar dados. Dependendo do hardware de áudio, o algoritmo AEC pode não convergir. Nesse caso, é provável que o buffer de captura resultante inclua o eco dos alto-falantes.

Quando o filtro que contém o nó AEC é criado ou o nó é redefinido, o algoritmo AEC inicialmente define os três bits ch status como zero. Essa configuração representa o estado não inicializado, AEC_STATUS_FD_HISTORY_UNINITIALIZED.

Depois que o algoritmo AEC converge, o status CH alterna para o estado convergido AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED. Se o algoritmo AEC perder convergência, o ch status alternar para o estado divergente AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED. Embora a status seja mais provável que mude para o estado divergente do estado convergido, ela também pode mudar diretamente do estado não inicializado para o estado divergente. Depois que o ch status tiver mudado para o estado divergente, ele permanecerá nesse estado até que o algoritmo seja redefinido ou a fome seja detectada.

Quando o filtro do sistema AEC detecta a fome em qualquer um de seus quatro pinos – capturar, capturar, renderizar ou renderizar – ele redefine seu estado interno, incluindo o histórico de convergência.

Observe que o bit 2 dos três bits ch status não é usado no momento.

Como alternativa ao uso do CH status bits, o aplicativo pode monitorar a status de convergência em tempo real verificando o bit do sinalizador AEC_STATUS_FD_CURRENTLY_CONVERGED. Se esse bit for definido, o algoritmo será convergido no momento. O algoritmo pode perder a convergência temporariamente quando ocorrem alterações no caminho acústico. O sinalizador de convergência em tempo real é filtrado para evitar que essas perdas momentâneas alternem inadequadamente os bits de status ch para o estado DSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED.

Requisitos

parâmetro

Ksmedia.h (inclua Ksmedia.h)

Confira também

KSNODEPROPERTY

KSNODETYPE_ACOUSTIC_ECHO_CANCEL