From: Arun Raghavan Date: Tue, 4 Oct 2011 08:36:26 +0000 (+0530) Subject: echo-cancel: Fail if loaded between a sink and its monitor X-Git-Tag: v1.99.1~267 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e681469154116cfef2411385ae00d9fb91b46bfc;p=platform%2Fupstream%2Fpulseaudio.git echo-cancel: Fail if loaded between a sink and its monitor Loading between a sink and its monitor causes a deadlock (while sending messages for latency snapshots). It isn't a case that has any real conceivable use, so let's just disallow it. --- diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c index 7e0dcef..c2db87e 100644 --- a/src/modules/echo-cancel/module-echo-cancel.c +++ b/src/modules/echo-cancel/module-echo-cancel.c @@ -1357,6 +1357,11 @@ int pa__init(pa_module*m) { } pa_assert(sink_master); + if (source_master->monitor_of == sink_master) { + pa_log("Can't cancel echo between a sink and its monitor"); + goto fail; + } + source_ss = source_master->sample_spec; source_ss.rate = DEFAULT_RATE; source_ss.channels = DEFAULT_CHANNELS;