Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1882)

Unified Diff: content/renderer/media/media_stream_audio_processor.cc

Issue 227743004: Added a kEchoCancellation constraint to turn off the audio processing. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_audio_processor.cc
diff --git a/content/renderer/media/media_stream_audio_processor.cc b/content/renderer/media/media_stream_audio_processor.cc
index c83ffff7eb408417dd9a641fc3c93f92a032119f..490472dd781bf56cd7d02e9587c7c4dfc8e5d889 100644
--- a/content/renderer/media/media_stream_audio_processor.cc
+++ b/content/renderer/media/media_stream_audio_processor.cc
@@ -280,29 +280,18 @@ void MediaStreamAudioProcessor::InitializeAudioProcessingModule(
MediaStreamType type) {
DCHECK(!audio_processing_);
- RTCMediaConstraints native_constraints(constraints);
-
// Audio mirroring can be enabled even though audio processing is otherwise
// disabled.
audio_mirroring_ = GetPropertyFromConstraints(
- &native_constraints, webrtc::MediaConstraintsInterface::kAudioMirroring);
+ constraints, kGoogAudioMirroring, effects, type);
if (!IsAudioTrackProcessingEnabled()) {
RecordProcessingState(AUDIO_PROCESSING_IN_WEBRTC);
return;
}
- // Only apply the fixed constraints for gUM of MEDIA_DEVICE_AUDIO_CAPTURE.
- DCHECK(IsAudioMediaType(type));
- if (type == MEDIA_DEVICE_AUDIO_CAPTURE)
- ApplyFixedAudioConstraints(&native_constraints);
-
- if (effects & media::AudioParameters::ECHO_CANCELLER) {
- // If platform echo canceller is enabled, disable the software AEC.
- native_constraints.AddMandatory(
- MediaConstraintsInterface::kEchoCancellation,
- MediaConstraintsInterface::kValueFalse, true);
- }
+ const bool echo_calcellation = GetPropertyFromConstraints(
perkj_chrome 2014/04/08 10:28:12 nit: move to where its used.
tommi (sloooow) - chröme 2014/04/08 10:49:30 echo_cancellation (not calcellation) Actually, I
no longer working on chromium 2014/04/11 08:56:30 Added code to return immediately when the echo_can
no longer working on chromium 2014/04/11 08:56:30 Done.
+ constraints, kEchoCancellation, effects, type);
#if defined(OS_IOS)
// On iOS, VPIO provides built-in AEC and AGC.
@@ -310,9 +299,9 @@ void MediaStreamAudioProcessor::InitializeAudioProcessingModule(
const bool enable_agc = false;
#else
const bool enable_aec = GetPropertyFromConstraints(
tommi (sloooow) - chröme 2014/04/08 10:49:30 can you change the name of this variable to e.g. g
no longer working on chromium 2014/04/11 08:56:30 Done.
- &native_constraints, MediaConstraintsInterface::kEchoCancellation);
+ constraints, kGoogEchoCancellation, effects, type);
const bool enable_agc = GetPropertyFromConstraints(
tommi (sloooow) - chröme 2014/04/08 10:49:30 same here and below.
no longer working on chromium 2014/04/11 08:56:30 Done.
- &native_constraints, webrtc::MediaConstraintsInterface::kAutoGainControl);
+ constraints, kGoogAutoGainControl, effects, type);
#endif
#if defined(OS_IOS) || defined(OS_ANDROID)
@@ -320,24 +309,25 @@ void MediaStreamAudioProcessor::InitializeAudioProcessingModule(
const bool enable_typing_detection = false;
#else
const bool enable_experimental_aec = GetPropertyFromConstraints(
- &native_constraints,
- MediaConstraintsInterface::kExperimentalEchoCancellation);
+ constraints, kGoogExperimentalEchoCancellation, effects, type);
const bool enable_typing_detection = GetPropertyFromConstraints(
- &native_constraints, MediaConstraintsInterface::kTypingNoiseDetection);
+ constraints, kGoogTypingNoiseDetection, effects, type);
#endif
const bool enable_ns = GetPropertyFromConstraints(
- &native_constraints, MediaConstraintsInterface::kNoiseSuppression);
+ constraints, kGoogNoiseSuppression, effects, type);
const bool enable_experimental_ns = GetPropertyFromConstraints(
- &native_constraints,
- MediaConstraintsInterface::kExperimentalNoiseSuppression);
+ constraints, kGoogExperimentalNoiseSuppression, effects, type);
const bool enable_high_pass_filter = GetPropertyFromConstraints(
- &native_constraints, MediaConstraintsInterface::kHighpassFilter);
-
- // Return immediately if no audio processing component is enabled.
- if (!enable_aec && !enable_experimental_aec && !enable_ns &&
- !enable_high_pass_filter && !enable_typing_detection && !enable_agc &&
- !enable_experimental_ns) {
+ constraints, kGoogHighpassFilter, effects, type);
+
+ // |echo_calcellation| is used as a master control on enabling/disabling
tommi (sloooow) - chröme 2014/04/08 10:49:30 fix typo here as well
no longer working on chromium 2014/04/11 08:56:30 Done.
+ // the audio processing. Another way to disable the audio processing is to
+ // turn off all the goog* constraints explicitly.
+ if (!echo_calcellation ||
no longer working on chromium 2014/04/08 10:02:53 The main change is here, echo_calcellation is true
perkj_chrome 2014/04/08 10:28:12 fix name echo_calcellation
tommi (sloooow) - chröme 2014/04/08 10:49:30 I think that we're unnecessarily querying all the
no longer working on chromium 2014/04/11 08:56:30 Done.
no longer working on chromium 2014/04/11 08:56:30 Done with avoid querying the constraints when echo
+ (!enable_aec && !enable_experimental_aec && !enable_ns &&
+ !enable_high_pass_filter && !enable_typing_detection &&
+ !enable_agc && !enable_experimental_ns)) {
RecordProcessingState(AUDIO_PROCESSING_DISABLED);
return;
}

Powered by Google App Engine
This is Rietveld 408576698