|
|
@@ -29,6 +29,10 @@ var devices = {
|
|
29
|
29
|
// Currently audio output device change is supported only in Chrome and
|
|
30
|
30
|
// default output always has 'default' device ID
|
|
31
|
31
|
var audioOutputDeviceId = 'default'; // default device
|
|
|
32
|
+// Disables Acoustic Echo Cancellation
|
|
|
33
|
+var disableAEC = false;
|
|
|
34
|
+// Disables Noise Suppression
|
|
|
35
|
+var disableNS = false;
|
|
32
|
36
|
|
|
33
|
37
|
var featureDetectionAudioEl = document.createElement('audio');
|
|
34
|
38
|
var isAudioOutputDeviceChangeAvailable =
|
|
|
@@ -133,12 +137,12 @@ function getConstraints(um, options) {
|
|
133
|
137
|
}
|
|
134
|
138
|
// if it is good enough for hangouts...
|
|
135
|
139
|
constraints.audio.optional.push(
|
|
136
|
|
- {googEchoCancellation: true},
|
|
|
140
|
+ {googEchoCancellation: !disableAEC},
|
|
137
|
141
|
{googAutoGainControl: true},
|
|
138
|
|
- {googNoiseSupression: true},
|
|
|
142
|
+ {googNoiseSupression: !disableNS},
|
|
139
|
143
|
{googHighpassFilter: true},
|
|
140
|
|
- {googNoisesuppression2: true},
|
|
141
|
|
- {googEchoCancellation2: true},
|
|
|
144
|
+ {googNoiseSuppression2: !disableNS},
|
|
|
145
|
+ {googEchoCancellation2: !disableAEC},
|
|
142
|
146
|
{googAutoGainControl2: true}
|
|
143
|
147
|
);
|
|
144
|
148
|
} else {
|
|
|
@@ -577,6 +581,16 @@ function wrapAttachMediaStream(origAttachMediaStream) {
|
|
577
|
581
|
//Options parameter is to pass config options. Currently uses only "useIPv6".
|
|
578
|
582
|
var RTCUtils = {
|
|
579
|
583
|
init: function (options) {
|
|
|
584
|
+
|
|
|
585
|
+ if (typeof(options.disableAEC) === "boolean") {
|
|
|
586
|
+ disableAEC = options.disableAEC;
|
|
|
587
|
+ logger.info("Disable AEC: " + disableAEC);
|
|
|
588
|
+ }
|
|
|
589
|
+ if (typeof(options.disableNS) === "boolean") {
|
|
|
590
|
+ disableNS = options.disableNS;
|
|
|
591
|
+ logger.info("Disable NS: " + disableNS);
|
|
|
592
|
+ }
|
|
|
593
|
+
|
|
580
|
594
|
return new Promise(function(resolve, reject) {
|
|
581
|
595
|
if (RTCBrowserType.isFirefox()) {
|
|
582
|
596
|
var FFversion = RTCBrowserType.getFirefoxVersion();
|