KSPROPERTY_AEC_STATUS
La propriété KSPROPERTY_AEC_STATUS permet de surveiller la status d’un nœud AEC (KSNODETYPE_ACOUSTIC_ECHO_CANCEL). Il s’agit d’une propriété facultative d’un nœud AEC.
Tableau récapitulatif de l’utilisation
Obtenir | Définissez | Cible | Type de descripteur de propriété | Type de valeur de propriété |
---|---|---|---|---|
Oui |
Non |
Épingle |
ULONG |
La valeur de propriété (données d’opération) est de type ULONG. Il s’agit d’une valeur status qui peut être définie sur le bit OR d’un ou plusieurs des bits d’indicateur dans la colonne de gauche du tableau suivant, qui sont définis dans le fichier d’en-tête Ksmedia.h. Les indicateurs de DSCFX_AEC_STATUS correspondants du fichier dsound.h d’en-tête sont affichés dans la colonne de droite du tableau. Pour plus d’informations sur ces indicateurs, consultez la documentation Microsoft Windows SDK.
Indicateur de status AEC | Valeur | DSCFX_AEC_STATUS indicateur |
---|---|---|
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 |
Valeur de retour
Une demande de propriété KSPROPERTY_AEC_STATUS retourne STATUS_SUCCESS pour indiquer qu’elle s’est terminée avec succès. Sinon, la requête retourne une erreur appropriée status code.
Notes
Les trois bits les moins significatifs dans les indicateurs de status AEC (voir le tableau précédent) représentent l’historique de convergence (CH) de l’algorithme AEC. Les bits status CH peuvent être utilisés par une application Microsoft DirectSound pour déterminer si l’algorithme a convergé et s’il est également resté dans l’état convergé depuis le moment où il a commencé à traiter les données. Selon le matériel audio, l’algorithme AEC peut ne pas converger, auquel cas la mémoire tampon de capture résultante est susceptible d’inclure l’écho des haut-parleurs.
Lorsque le filtre contenant le nœud AEC est créé ou que le nœud est réinitialisé, l’algorithme AEC définit initialement les trois bits ch status sur zéro. Ce paramètre représente l’état non initialisé, AEC_STATUS_FD_HISTORY_UNINITIALIZED.
Une fois l’algorithme AEC convergé, le status CH passe à l’état convergé, AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED. Si l’algorithme AEC perd jamais la convergence, le status CH passe à l’état divergent, AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED. Bien que le status soit le plus susceptible de basculer vers l’état divergent de l’état convergé, il peut également basculer directement de l’état non initialisé vers l’état divergent. Une fois que le status CH est passé à l’état divergent, il reste dans cet état jusqu’à ce que l’algorithme soit réinitialisé ou qu’une famine soit détectée.
Lorsque le filtre système AEC détecte la famine à l’une de ses quatre broches (capture, capture, rendu dans ou sortie), il réinitialise son état interne, y compris l’historique de convergence.
Notez que le bit 2 des trois bits status CH n’est actuellement pas utilisé.
En guise d’alternative à l’utilisation des bits status CH, l’application peut surveiller les status de convergence en temps réel en vérifiant le bit d’indicateur AEC_STATUS_FD_CURRENTLY_CONVERGED. Si ce bit est défini, l’algorithme est actuellement convergé. L’algorithme peut perdre temporairement la convergence lorsque des modifications se produisent dans le chemin acoustique. L’indicateur de convergence en temps réel est filtré pour empêcher ces pertes momentanées de basculer de manière inappropriée les bits status CH vers l’état DSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED.
Spécifications
En-tête |
Ksmedia.h (inclure Ksmedia.h) |