Index: webrtc/common_audio/vad/vad.cc |
diff --git a/webrtc/common_audio/vad/vad.cc b/webrtc/common_audio/vad/vad.cc |
index 764d024cbd36a0abd7bcc9a7cee6ca5ff61d6bae..dc4eb6db3246d488d85e23e155ff305ab0099170 100644 |
--- a/webrtc/common_audio/vad/vad.cc |
+++ b/webrtc/common_audio/vad/vad.cc |
@@ -14,11 +14,8 @@ |
namespace webrtc { |
-Vad::Vad(enum Aggressiveness mode) { |
- handle_ = WebRtcVad_Create(); |
- CHECK(handle_); |
- CHECK_EQ(WebRtcVad_Init(handle_), 0); |
- CHECK_EQ(WebRtcVad_set_mode(handle_, mode), 0); |
+Vad::Vad(enum Aggressiveness mode) : handle_(nullptr), aggressiveness_(mode) { |
+ Reset(); |
} |
Vad::~Vad() { |
@@ -40,4 +37,13 @@ enum Vad::Activity Vad::VoiceActivity(const int16_t* audio, |
} |
} |
+void Vad::Reset() { |
+ if (handle_) |
+ WebRtcVad_Free(handle_); |
+ handle_ = WebRtcVad_Create(); |
+ CHECK(handle_); |
+ CHECK_EQ(WebRtcVad_Init(handle_), 0); |
+ CHECK_EQ(WebRtcVad_set_mode(handle_, aggressiveness_), 0); |
+} |
+ |
} // namespace webrtc |