diff options
Diffstat (limited to 'webrtc/modules/audio_processing/voice_detection_impl.h')
-rw-r--r-- | webrtc/modules/audio_processing/voice_detection_impl.h | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/webrtc/modules/audio_processing/voice_detection_impl.h b/webrtc/modules/audio_processing/voice_detection_impl.h index b18808316e..0d6d8cf14a 100644 --- a/webrtc/modules/audio_processing/voice_detection_impl.h +++ b/webrtc/modules/audio_processing/voice_detection_impl.h @@ -11,31 +11,27 @@ #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_VOICE_DETECTION_IMPL_H_ #define WEBRTC_MODULES_AUDIO_PROCESSING_VOICE_DETECTION_IMPL_H_ +#include "webrtc/base/constructormagic.h" +#include "webrtc/base/criticalsection.h" +#include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/audio_processing/include/audio_processing.h" -#include "webrtc/modules/audio_processing/processing_component.h" namespace webrtc { class AudioBuffer; -class CriticalSectionWrapper; -class VoiceDetectionImpl : public VoiceDetection, - public ProcessingComponent { +class VoiceDetectionImpl : public VoiceDetection { public: - VoiceDetectionImpl(const AudioProcessing* apm, CriticalSectionWrapper* crit); - virtual ~VoiceDetectionImpl(); + explicit VoiceDetectionImpl(rtc::CriticalSection* crit); + ~VoiceDetectionImpl() override; - int ProcessCaptureAudio(AudioBuffer* audio); + // TODO(peah): Fold into ctor, once public API is removed. + void Initialize(int sample_rate_hz); + void ProcessCaptureAudio(AudioBuffer* audio); // VoiceDetection implementation. - bool is_enabled() const override; - - // ProcessingComponent implementation. - int Initialize() override; - - private: - // VoiceDetection implementation. int Enable(bool enable) override; + bool is_enabled() const override; int set_stream_has_voice(bool has_voice) override; bool stream_has_voice() const override; int set_likelihood(Likelihood likelihood) override; @@ -43,21 +39,18 @@ class VoiceDetectionImpl : public VoiceDetection, int set_frame_size_ms(int size) override; int frame_size_ms() const override; - // ProcessingComponent implementation. - void* CreateHandle() const override; - int InitializeHandle(void* handle) const override; - int ConfigureHandle(void* handle) const override; - void DestroyHandle(void* handle) const override; - int num_handles_required() const override; - int GetHandleError(void* handle) const override; - - const AudioProcessing* apm_; - CriticalSectionWrapper* crit_; - bool stream_has_voice_; - bool using_external_vad_; - Likelihood likelihood_; - int frame_size_ms_; - size_t frame_size_samples_; + private: + class Vad; + rtc::CriticalSection* const crit_; + bool enabled_ GUARDED_BY(crit_) = false; + bool stream_has_voice_ GUARDED_BY(crit_) = false; + bool using_external_vad_ GUARDED_BY(crit_) = false; + Likelihood likelihood_ GUARDED_BY(crit_) = kLowLikelihood; + int frame_size_ms_ GUARDED_BY(crit_) = 10; + size_t frame_size_samples_ GUARDED_BY(crit_) = 0; + int sample_rate_hz_ GUARDED_BY(crit_) = 0; + rtc::scoped_ptr<Vad> vad_ GUARDED_BY(crit_); + RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(VoiceDetectionImpl); }; } // namespace webrtc |