Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: content/renderer/media/media_stream_audio_processor_options.h

Issue 904203003: UMA histogram WebRTC.AecDelayBasedQuality updated (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed GetAecStats() to take EchoCancellation as well Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_
6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_ 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/files/file.h" 10 #include "base/files/file.h"
11 #include "base/time/time.h"
12 #include "content/common/content_export.h" 11 #include "content/common/content_export.h"
13 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" 12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
14 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 13 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
15 14
16 namespace webrtc { 15 namespace webrtc {
17 16
18 class AudioFrame; 17 class AudioFrame;
19 class AudioProcessing; 18 class AudioProcessing;
19 class EchoCancellation;
20 class MediaConstraintsInterface; 20 class MediaConstraintsInterface;
21 class TypingDetection; 21 class TypingDetection;
22 22
23 } 23 }
24 24
25 namespace content { 25 namespace content {
26 26
27 class RTCMediaConstraints; 27 class RTCMediaConstraints;
28 28
29 using webrtc::AudioProcessing; 29 using webrtc::AudioProcessing;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 bool default_audio_processing_constraint_value_; 86 bool default_audio_processing_constraint_value_;
87 }; 87 };
88 88
89 // A helper class to log echo information in general and Echo Cancellation 89 // A helper class to log echo information in general and Echo Cancellation
90 // quality in particular. 90 // quality in particular.
91 class CONTENT_EXPORT EchoInformation { 91 class CONTENT_EXPORT EchoInformation {
92 public: 92 public:
93 EchoInformation(); 93 EchoInformation();
94 virtual ~EchoInformation(); 94 virtual ~EchoInformation();
95 95
96 // Updates delay statistics with a new |delay|. 96 void UpdateAecDelayStats(webrtc::EchoCancellation* echo_cancellation);
97 void UpdateAecDelayStats(int delay);
98 97
99 private: 98 private:
100 // Updates UMA histograms with an interval of |kTimeBetweenLogsInSeconds|. 99 // Updates UMA histograms with an interval of 5 seconds.
101 void LogAecDelayStats(); 100 void LogAecDelayStats();
102 101
103 // Counters for determining how often the estimated delay in the AEC is out of 102 // Counters to be able to aquire a 5 second aggregated metric out of 1 second
104 // bounds. 103 // aggregated webrtc::EchoCancellation::GetEchoDelayMetrics() queries.
105 int echo_poor_delay_counts_; 104 int num_chunks_;
106 int echo_total_delay_counts_; 105 int num_queries_;
107 base::TimeTicks last_log_time_; 106 float echo_fraction_poor_delays_;
108 107
109 DISALLOW_COPY_AND_ASSIGN(EchoInformation); 108 DISALLOW_COPY_AND_ASSIGN(EchoInformation);
110 }; 109 };
111 110
112 // Enables the echo cancellation in |audio_processing|. 111 // Enables the echo cancellation in |audio_processing|.
113 void EnableEchoCancellation(AudioProcessing* audio_processing); 112 void EnableEchoCancellation(AudioProcessing* audio_processing);
114 113
115 // Enables the noise suppression in |audio_processing|. 114 // Enables the noise suppression in |audio_processing|.
116 void EnableNoiseSuppression(AudioProcessing* audio_processing); 115 void EnableNoiseSuppression(AudioProcessing* audio_processing);
117 116
118 // Enables the high pass filter in |audio_processing|. 117 // Enables the high pass filter in |audio_processing|.
119 void EnableHighPassFilter(AudioProcessing* audio_processing); 118 void EnableHighPassFilter(AudioProcessing* audio_processing);
120 119
121 // Enables the typing detection in |audio_processing|. 120 // Enables the typing detection in |audio_processing|.
122 void EnableTypingDetection(AudioProcessing* audio_processing, 121 void EnableTypingDetection(AudioProcessing* audio_processing,
123 webrtc::TypingDetection* typing_detector); 122 webrtc::TypingDetection* typing_detector);
124 123
125 // Starts the echo cancellation dump in |audio_processing|. 124 // Starts the echo cancellation dump in |audio_processing|.
126 void StartEchoCancellationDump(AudioProcessing* audio_processing, 125 void StartEchoCancellationDump(AudioProcessing* audio_processing,
127 base::File aec_dump_file); 126 base::File aec_dump_file);
128 127
129 // Stops the echo cancellation dump in |audio_processing|. 128 // Stops the echo cancellation dump in |audio_processing|.
130 // This method has no impact if echo cancellation dump has not been started on 129 // This method has no impact if echo cancellation dump has not been started on
131 // |audio_processing|. 130 // |audio_processing|.
132 void StopEchoCancellationDump(AudioProcessing* audio_processing); 131 void StopEchoCancellationDump(AudioProcessing* audio_processing);
133 132
134 void EnableAutomaticGainControl(AudioProcessing* audio_processing); 133 void EnableAutomaticGainControl(AudioProcessing* audio_processing);
135 134
136 void GetAecStats(AudioProcessing* audio_processing, 135 void GetAecStats(webrtc::EchoCancellation* echo_cancellation,
137 webrtc::AudioProcessorInterface::AudioProcessorStats* stats); 136 webrtc::AudioProcessorInterface::AudioProcessorStats* stats);
138 137
139 } // namespace content 138 } // namespace content
140 139
141 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_ 140 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_PROCESSOR_OPTIONS_H_
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_audio_processor.cc ('k') | content/renderer/media/media_stream_audio_processor_options.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698