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 |
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) |