| Index: content/renderer/media/media_stream_audio_processor_options.h | 
| diff --git a/content/renderer/media/media_stream_audio_processor_options.h b/content/renderer/media/media_stream_audio_processor_options.h | 
| index 3ad41100b4c78f1157519b2598df4435fd692f1b..8c211e5075d12dd559eb32515833f12c65b69dc8 100644 | 
| --- a/content/renderer/media/media_stream_audio_processor_options.h | 
| +++ b/content/renderer/media/media_stream_audio_processor_options.h | 
| @@ -8,12 +8,9 @@ | 
| #include <string> | 
|  | 
| #include "base/platform_file.h" | 
| +#include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 
| #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" | 
|  | 
| -namespace blink { | 
| -class WebMediaConstraints; | 
| -} | 
| - | 
| namespace webrtc { | 
|  | 
| class AudioFrame; | 
| @@ -30,26 +27,53 @@ class RTCMediaConstraints; | 
| using webrtc::AudioProcessing; | 
| using webrtc::MediaConstraintsInterface; | 
|  | 
| -// Merge |constraints| with |kDefaultAudioConstraints|. For any key which exists | 
| -// in both, the value from |constraints| is maintained, including its | 
| -// mandatory/optional status. New values from |kDefaultAudioConstraints| will | 
| -// be added with mandatory status. | 
| -void ApplyFixedAudioConstraints(RTCMediaConstraints* constraints); | 
| - | 
| -// Checks if any audio constraints are set that requires audio processing to | 
| -// be applied. |effects| is the bitmasks telling whether certain platform | 
| -// hardware audio effects are enabled, like hardware echo cancellation. If some | 
| -// hardware effect is enabled, the corresponding software audio processing will | 
| -// be disabled. | 
| -bool NeedsAudioProcessing(const blink::WebMediaConstraints& constraints, | 
| -                          int effects); | 
| - | 
| -// Gets the property named by |key| from the |constraints|. | 
| -// Returns true if the key is found and has a valid boolean value; Otherwise | 
| -// false. | 
| -bool GetPropertyFromConstraints( | 
| -    const MediaConstraintsInterface* constraints, | 
| -    const std::string& key); | 
| +// A helper class to parse audio constraints from a blink::WebMediaConstraints | 
| +// object. | 
| +class MediaAudioConstraints { | 
| + public: | 
| +  // Constraint keys used by audio processing. | 
| +  static const char kEchoCancellation[]; | 
| +  static const char kGoogEchoCancellation[]; | 
| +  static const char kGoogExperimentalEchoCancellation[]; | 
| +  static const char kGoogAutoGainControl[]; | 
| +  static const char kGoogExperimentalAutoGainControl[]; | 
| +  static const char kGoogNoiseSuppression[]; | 
| +  static const char kGoogExperimentalNoiseSuppression[]; | 
| +  static const char kGoogHighpassFilter[]; | 
| +  static const char kGoogTypingNoiseDetection[]; | 
| +  static const char kGoogAudioMirroring[]; | 
| + | 
| +  // Merge |constraints| with |kDefaultAudioConstraints|. For any key which | 
| +  // exists in both, the value from |constraints| is maintained, including its | 
| +  // mandatory/optional status. New values from |kDefaultAudioConstraints| will | 
| +  // be added with optional status. | 
| +  static void ApplyFixedAudioConstraints(RTCMediaConstraints* constraints); | 
| + | 
| +  // |effects| is the bitmasks telling whether certain platform | 
| +  // hardware audio effects are enabled, like hardware echo cancellation. If | 
| +  // some hardware effect is enabled, the corresponding software audio | 
| +  // processing will be disabled. | 
| +  MediaAudioConstraints(const blink::WebMediaConstraints& constraints, | 
| +                        int effects); | 
| +  virtual ~MediaAudioConstraints(); | 
| + | 
| +  // Checks if any audio constraints are set that requires audio processing to | 
| +  // be applied. | 
| +  bool NeedsAudioProcessing(); | 
| + | 
| +  // Gets the property of the constraint named by |key| in |constraints_|. | 
| +  // Returns the constraint's value if the key is found; Otherwise returns the | 
| +  // default value of the constraint. | 
| +  bool GetProperty(const std::string& key); | 
| + | 
| +  // Returns true if all the mandatory constraints in |constraints_| are valid; | 
| +  // Otherwise return false. | 
| +  bool IsValid(); | 
| + | 
| + private: | 
| +  const blink::WebMediaConstraints constraints_; | 
| +  const int effects_; | 
| +}; | 
|  | 
| // Enables the echo cancellation in |audio_processing|. | 
| void EnableEchoCancellation(AudioProcessing* audio_processing); | 
| @@ -72,7 +96,7 @@ void EnableExperimentalEchoCancellation(AudioProcessing* audio_processing); | 
|  | 
| // Starts the echo cancellation dump in |audio_processing|. | 
| void StartEchoCancellationDump(AudioProcessing* audio_processing, | 
| -                  const base::PlatformFile& aec_dump_file); | 
| +                               const base::PlatformFile& aec_dump_file); | 
|  | 
| // Stops the echo cancellation dump in |audio_processing|. | 
| // This method has no impact if echo cancellation dump has not been started on | 
|  |