The IDirectSoundCaptureFXAec8::GetStatus method retrieves the status of the effect.
HRESULT GetStatus( PDWORD pdwStatus );
Constant | Value |
DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED | 0x0 |
DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED | 0x1 |
DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED | 0x2 |
DSCFX_AEC_STATUS_CURRENTLY_CONVERGED | 0x8 |
If the method succeeds, the return value is DS_OK. If the method fails, the return value may be one of the following values.
Return code |
DSERR_INVALIDPARAM |
DSERR_OUTOFMEMORY |
Windows: Important Note for Windows Vista
Existing applications that access Windows XP Acoustic Echo Cancellation (AEC) features via the DirectSound API will no longer obtain AEC when running on Windows Vista. These applications will still run, but their calls to AEC-specific DirectSound API calls will have no effect on the captured audio.
To learn how to obtain AEC in Windows Vista, See the Windows Vista AEC topics in the Windows SDK.
The three least significant bits in *pdwStatus describe the convergence history; that is, the success of the effect in canceling the echo. The convergence history can be used by the application to determine if the algorithm has converged and remained in the converged state since it started processing data.
Initially, the AEC algorithm sets the three lower bits to 0 for the uninitialized state (DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED). When the AEC algorithm has converged, the convergence history is switched to the DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED state. If the AEC algorithm ever loses convergence, the convergence history is then transitioned to the DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED state. A transition from DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED to DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED is also possible. The convergence history remains in the DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED state until the algorithm is reset or timely data is no longer arriving on the capture or render stream.
Header: Declared in Dsound.h.
Import Library: Use Dsdmo.dll.