Index: content/renderer/media/media_stream_audio_processor.h |
diff --git a/content/renderer/media/media_stream_audio_processor.h b/content/renderer/media/media_stream_audio_processor.h |
index 4b74ca0a24090d73f7649b93a36dce24d2f9c62b..356d5989f4dfe221b694c86ef24b04f342d7850c 100644 |
--- a/content/renderer/media/media_stream_audio_processor.h |
+++ b/content/renderer/media/media_stream_audio_processor.h |
@@ -14,6 +14,7 @@ |
#include "content/common/content_export.h" |
#include "content/public/common/media_stream_request.h" |
#include "content/renderer/media/aec_dump_message_filter.h" |
+#include "content/renderer/media/audio_repetition_detector.h" |
#include "content/renderer/media/webrtc_audio_device_impl.h" |
#include "media/base/audio_converter.h" |
#include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
@@ -112,7 +113,16 @@ class CONTENT_EXPORT MediaStreamAudioProcessor : |
~MediaStreamAudioProcessor() override; |
private: |
+ class AudioRepetitionReporter : public AudioRepetitionDetector { |
Henrik Grunell
2015/10/20 08:50:16
Comment on the class.
Henrik Grunell
2015/10/20 08:50:16
Let this class own a detector instead of inheritin
minyue
2015/10/23 12:05:23
Per offline discussion with Tommi, we use base::Ca
|
+ public: |
+ AudioRepetitionReporter(int min_length_ms, size_t max_frames, |
+ const int* look_back_times, size_t num_look_back); |
+ private: |
+ void ReportRepetition(int look_back_ms) override; |
+ }; |
+ |
friend class MediaStreamAudioProcessorTest; |
+ |
FRIEND_TEST_ALL_PREFIXES(MediaStreamAudioProcessorTest, |
GetAecDumpMessageFilter); |
@@ -153,6 +163,9 @@ class CONTENT_EXPORT MediaStreamAudioProcessor : |
// both the capture audio thread and the render audio thread. |
base::subtle::Atomic32 render_delay_ms_; |
+ // Module to detect and report (to UMA) bit exact audio repetition. |
+ scoped_ptr<AudioRepetitionReporter> audio_repetition_reporter_; |
+ |
// Module to handle processing and format conversion. |
scoped_ptr<webrtc::AudioProcessing> audio_processing_; |