summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun.raghavan@collabora.co.uk>2011-08-15 16:08:40 +0530
committerArun Raghavan <arun.raghavan@collabora.co.uk>2011-08-15 16:08:40 +0530
commit2c852061ee966fa270d3d2c3f002beb0b5f51c8d (patch)
treea8bc7521fc3b234ae33472f99e400c455380ba4c
parent2e075bb83767085cbafcdfeefa6fc77748a341dc (diff)
filter-heuristics: Don't force AEC on all phone streams
Removing the bit that automatically loads module-echo-cancel for phone streams. Clients need to specifically opt in for this now with filter.want, until we are reasonably certain this won't break other apps (Skype for one, possibly others).
-rw-r--r--src/modules/module-filter-heuristics.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/modules/module-filter-heuristics.c b/src/modules/module-filter-heuristics.c
index 222787fc..5bb0945e 100644
--- a/src/modules/module-filter-heuristics.c
+++ b/src/modules/module-filter-heuristics.c
@@ -77,7 +77,7 @@ static pa_bool_t role_match(pa_proplist *proplist, const char *role) {
}
static pa_hook_result_t process(struct userdata *u, pa_object *o, pa_bool_t is_sink_input) {
- const char *want, *stream_role;
+ const char *want;
pa_proplist *pl, *parent_pl;
if (is_sink_input) {
@@ -92,13 +92,6 @@ static pa_hook_result_t process(struct userdata *u, pa_object *o, pa_bool_t is_s
if (!pa_proplist_gets(pl, PA_PROP_FILTER_HEURISTICS) && pa_proplist_gets(pl, PA_PROP_FILTER_APPLY))
return PA_HOOK_OK;
- want = pa_proplist_gets(pl, PA_PROP_FILTER_WANT);
- if (!want) {
- /* This is a phone stream, maybe we want echo cancellation */
- if ((stream_role = pa_proplist_gets(pl, PA_PROP_MEDIA_ROLE)) && pa_streq(stream_role, "phone"))
- want = "echo-cancel";
- }
-
/* On phone sinks, make sure we're not applying echo cancellation */
if (role_match(parent_pl, "phone")) {
const char *apply = pa_proplist_gets(pl, PA_PROP_FILTER_APPLY);
@@ -111,6 +104,8 @@ static pa_hook_result_t process(struct userdata *u, pa_object *o, pa_bool_t is_s
return PA_HOOK_OK;
}
+ want = pa_proplist_gets(pl, PA_PROP_FILTER_WANT);
+
if (want) {
/* There's a filter that we want, ask module-filter-apply to apply it, and remember that we're managing filter.apply */
pa_proplist_sets(pl, PA_PROP_FILTER_APPLY, want);