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

Unified Diff: webrtc/modules/audio_processing/rms_level.h

Issue 2535523002: Refactor RMSLevel and give it new functionality (Closed)
Patch Set: Fixing win64 compile Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/rms_level.h
diff --git a/webrtc/modules/audio_processing/rms_level.h b/webrtc/modules/audio_processing/rms_level.h
index 12fa2125f08acdd3820971dddbcb370f3d25cdfa..0286268185b539fe6cca7d3890840c6bea60b690 100644
--- a/webrtc/modules/audio_processing/rms_level.h
+++ b/webrtc/modules/audio_processing/rms_level.h
@@ -11,8 +11,7 @@
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_RMS_LEVEL_H_
#define WEBRTC_MODULES_AUDIO_PROCESSING_RMS_LEVEL_H_
-#include <cstddef>
-
+#include "webrtc/base/array_view.h"
#include "webrtc/typedefs.h"
namespace webrtc {
@@ -27,7 +26,10 @@ namespace webrtc {
// RMS() to get the audio level indicator for the RTP header.
class RMSLevel {
public:
- static const int kMinLevel = 127;
+ struct Levels {
+ int average;
+ int peak;
+ };
RMSLevel();
~RMSLevel();
@@ -37,7 +39,7 @@ class RMSLevel {
void Reset();
// Pass each chunk of audio to Process() to accumulate the level.
- void Process(const int16_t* data, size_t length);
+ void Process(rtc::ArrayView<const int16_t> data);
peah-webrtc 2016/11/29 08:57:13 While you are anyway changing this: Would it make
hlundin-webrtc 2016/11/29 10:24:55 Done.
// If all samples with the given |length| have a magnitude of zero, this is
// a shortcut to avoid some computation.
@@ -45,12 +47,18 @@ class RMSLevel {
// Computes the RMS level over all data passed to Process() since the last
// call to RMS(). The returned value is positive but should be interpreted as
- // negative as per the RFC. It is constrained to [0, 127].
+ // negative as per the RFC. It is constrained to [0, 127]. Resets the internal
+ // state to start a new measurement period.
int RMS();
peah-webrtc 2016/11/29 08:57:13 Suggestion: I think it would make sense to rename
hlundin-webrtc 2016/11/29 10:24:55 Done.
+ // Like RMS() above, but also returns the RMS peak value. Resets the internal
+ // state to start a new measurement period.
+ Levels AverageAndPeak();
+
private:
float sum_square_;
size_t sample_count_;
+ float max_mean_square_;
};
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698