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

Unified Diff: remoting/host/audio_silence_detector.cc

Issue 2840773004: [Chromoting] Add AudioVolumeApplier to reduce the complexity and the dependency of kChannels (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: remoting/host/audio_silence_detector.cc
diff --git a/remoting/host/audio_silence_detector.cc b/remoting/host/audio_silence_detector.cc
index a744b35a117f5772be80ff8435f1a5c9ac7388ff..9f125458f4236a0074e06648a9675e039ebac9ed 100644
--- a/remoting/host/audio_silence_detector.cc
+++ b/remoting/host/audio_silence_detector.cc
@@ -20,7 +20,8 @@ int kSilencePeriodThresholdSeconds = 1;
AudioSilenceDetector::AudioSilenceDetector(int threshold)
: threshold_(threshold),
silence_length_max_(0),
- silence_length_(0) {
+ silence_length_(0),
+ channels_(0) {
DCHECK_GE(threshold_, 0);
}
@@ -29,18 +30,21 @@ AudioSilenceDetector::~AudioSilenceDetector() {
void AudioSilenceDetector::Reset(int sampling_rate, int channels) {
DCHECK_GT(sampling_rate, 0);
+ DCHECK_GT(channels, 0);
silence_length_ = 0;
silence_length_max_ =
sampling_rate * channels * kSilencePeriodThresholdSeconds;
+ channels_ = channels;
}
bool AudioSilenceDetector::IsSilence(const int16_t* samples,
- size_t samples_count) {
+ size_t frames) {
+ const int samples_count = frames * channels();
bool silent_packet = true;
// Potentially this loop can be optimized (e.g. using SSE or adding special
// case for threshold_==0), but it's not worth worrying about because the
// amount of data it processes is relaively small.
- for (size_t i = 0; i < samples_count; ++i) {
+ for (int i = 0; i < samples_count; ++i) {
if (abs(samples[i]) > threshold_) {
silent_packet = false;
break;
@@ -56,4 +60,8 @@ bool AudioSilenceDetector::IsSilence(const int16_t* samples,
return silence_length_ > silence_length_max_;
}
+int AudioSilenceDetector::channels() const {
+ return channels_;
+}
+
} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698