This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-4 AEC Integartion

Hi,

I want to integrate TI AEC for OMAP4 board (cortex A8), library in my gstreamer application as a plugin:

For Example:

gstreamer pipeline:gst-launch alsasrc ! gst-my-aec-plugin ! alsasink.

but the test app given for TI AEC library is taking 2 streams i.e Far End(FE) and Near End(NE) as inputs however in realtime we have a single stream comming from MIC,So how should i write my plugin.Do an AEC libraries have this kind of 2 stream i/p support.

  • Hi Ashwani,

    Strictly speaking our AEC needs two inputs and have 2 outputs - one input from near-end mic (capture), another in from far-end mic; one out to the far-end speaker and another out to the near-end speaker (playout).

    For gStreamer Plugin:

    AEC plugin will need two sink pads (one for near end speech and one for far end speech) and one source pad (for sending echo canceled speech to far end (I am adding more elements for illustration purpose).

    alsasrc ! gst-your-aec-plugin name=aec !  encoder ! rtp ! udpsink \

    udpsrc ! rtp ! decoder ! alsasink \

    decoder ! aec       ----------------->[this is reference speech needed by AEC to know what is being played out]

    Another option will be AEC plugin with two sink pads and 2 source pads:

    alsasrc ! gst-your-aec-plugin name=aec ! encoder ! rtp ! udpsink \

    udpsrc ! rtp ! decoder ! aec ! alsasink

    Last option gives option of doing any signal processing in receive direction (from far-end speaker to near-end listener); which we have in our AEC.

    Also, you need to make sure that playout to capture latency is fixed during the operation. Also, you need to know this value and set during AEC creation (y2x params).

    Note: The pipeline you have listed in your post is a loopback, and your AEC will not work properly.