[pulseaudio-discuss] How to avoid module-echo-cancel's "Echo-Cancel Source Stream" being created on a monitor source of an ALSA sink? If module-echo-cancel is loaded before the ALSA source is created.

Lin, Mengdong mengdong.lin at intel.com
Wed Jul 27 22:50:37 PDT 2011

I found the module-echo-cancel's "Echo-Cancel Source Stream" can be created on a monitor source of an new created ALSA sink by mistake, if the real ALSA source is not created yet.
Could anyone tell me how to fix this issue?

On my MeeGo platform, the ALSA sink/source don't always exist because the ALSA and Bluetooth HSP headset share one hardware data link. So when BT HSP headset is connected, ALSA card will change into a "hsp" profile , remove the "normal" ALSA sink/source pair and create a "hsp" sink/source pair for BT. And after BT HSP headset is disconnected, ALSA card restores its original profile, remove "hsp" sink/source and create "normal" ALSA sink/source again.

My problem is that when BT HSP is disconnected during a phone call, I got the above routing error and a pa deadlock described in another loop: http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-July/010741.html
The module-echo-cancel is loaded again when the VOIP stream is routing back to the new created ALSA sink. But because the ALSA source is not created yet (will be later), PA routes the "Echo-Cancel Source Stream" to the monitor source of the ALSA sink.

How to make "Echo-Cancel Source Stream" link to the right ALSA source, which will be created a little later?

Here is the log:
I  source.c: Created source 8 "alsa_output.platform-pmic_audio.19.intelmadihfheadset.echo-cancel.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I  source.c:     device.description = "Monitor of Echo-Cancel Sink alsa_output.platform-pmic_audio.19.intelmadihfheadset.echo-cancel on Intel MAD intelmadihfheadset"
I  source.c:     device.class = "monitor"
I  source.c:     device.icon_name = "audio-input-microphone"
D  classify.c: find_group_for_client (|<null>|0|-1|) => othermedia
D  module-suspend-on-idle.c: Sink alsa_output.platform-pmic_audio.19.intelmadihfheadset becomes busy.
D  memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D  memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I  source-output.c: Created output 2 "Echo-Cancel Source Stream" on alsa_output.platform-pmic_audio.19.intelmadihfheadset.monitor with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I  source-output.c:     media.name = "Echo-Cancel Source Stream"
I  source-output.c:     media.role = "filter"
E  module-echo-cancel.c: new source output <Echo-Cancel Source Stream> on source <alsa_output.platform-pmic_audio.19.intelmadihfheadset.monitor>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110728/015d6882/attachment.htm>

More information about the pulseaudio-discuss mailing list