#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_
#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_
#include <string>
#include "base/platform_file.h"
#include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
namespace blink {
class WebMediaConstraints;
}
namespace webrtc {
class AudioFrame;
class AudioProcessing;
class MediaConstraintsInterface;
class TypingDetection;
}
namespace content {
class RTCMediaConstraints;
using webrtc::AudioProcessing;
using webrtc::MediaConstraintsInterface;
void ApplyFixedAudioConstraints(RTCMediaConstraints* constraints);
bool NeedsAudioProcessing(const blink::WebMediaConstraints& constraints,
int effects);
bool GetPropertyFromConstraints(
const MediaConstraintsInterface* constraints,
const std::string& key);
void EnableEchoCancellation(AudioProcessing* audio_processing);
void EnableNoiseSuppression(AudioProcessing* audio_processing);
void EnableExperimentalNoiseSuppression(AudioProcessing* audio_processing);
void EnableHighPassFilter(AudioProcessing* audio_processing);
void EnableTypingDetection(AudioProcessing* audio_processing,
webrtc::TypingDetection* typing_detector);
void EnableExperimentalEchoCancellation(AudioProcessing* audio_processing);
void StartEchoCancellationDump(AudioProcessing* audio_processing,
const base::PlatformFile& aec_dump_file);
void StopEchoCancellationDump(AudioProcessing* audio_processing);
void EnableAutomaticGainControl(AudioProcessing* audio_processing);
void GetAecStats(AudioProcessing* audio_processing,
webrtc::AudioProcessorInterface::AudioProcessorStats* stats);
}
#endif