KSNODETYPE_ACOUSTIC_ECHO_CANCEL

The KSNODETYPE_ACOUSTIC_ECHO_CANCEL node represents an AEC (acoustic echo cancellation) control. An AEC node has connections for two input streams and two output streams. One input/output pair is used for the capture stream, and the other input/output pair is used for the render stream. The capture-output and render-input streams have the same format. The capture-input and render-output streams can have a different number of channels and different sample rates. However, in a typical implementation, the two streams either have the same sample rate or a combination, such as 16 kHz and 48 kHz or 11.025 kHz and 44.1 kHz, in which one sample rate is an integer multiple of the other.

An AEC node should number its logical pins with the pin IDs from header file Ksmedia.h, which are shown in the following table.

Pin ID Parameter Meaning

KSNODEPIN_AEC_RENDER_IN

Sink pin (node input) for render stream.

KSNODEPIN_AEC_RENDER_OUT

Source pin (node output) for render stream.

KSNODEPIN_AEC_CAPTURE_IN

Sink pin (node input) for capture stream.

KSNODEPIN_AEC_CAPTURE_OUT

Source pin (node output) for capture stream.

Note that the pins in the preceding table are logical pins on the node, which are used solely to specify connections internal to the filter, rather than external pins on the filter, which are used to connect to other filters. For more information, see PCCONNECTION_DESCRIPTOR.

For information about how a filter containing an AEC node can provide support for full-duplex DirectSound applications, see DirectSound Capture Effects.

When a filter containing an AEC node is created or the node is reset, the node is initially configured to operate in pass-through mode.

A KSNODETYPE_ACOUSTIC_ECHO_CANCEL node should support the following properties in order to enable hardware acceleration:

KSPROPERTY_AUDIO_CPU_RESOURCES

KSPROPERTY_AUDIO_ALGORITHM_INSTANCE

KSPROPERTY_TOPOLOGYNODE_ENABLE

KSPROPERTY_TOPOLOGYNODE_RESET

The KSPROPERTY_TOPOLOGYNODE_ENABLE property is used to enable and disable an AEC node. When disabled, the node operates in pass-through mode; that is, it allows the render and capture streams to pass through the node without modification.

A KSNODETYPE_ACOUSTIC_ECHO_CANCEL node can also support the following optional properties in order to provide additional control and monitoring capabilities:

KSPROPERTY_AEC_MODE

KSPROPERTY_AEC_NOISE_FILL_ENABLE

KSPROPERTY_AEC_STATUS