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

Side by Side Diff: content/test/data/media/webrtc_test_audio.js

Issue 2366303002: Only look at the last 10K samples for WebRTC muting tests. (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // Audio test utilities. 5 // Audio test utilities.
6 6
7 // GetStats reports audio output energy in the [0, 32768] range. 7 // GetStats reports audio output energy in the [0, 32768] range.
8 var MAX_AUDIO_OUTPUT_ENERGY = 32768; 8 var MAX_AUDIO_OUTPUT_ENERGY = 32768;
9 9
10 // Queries WebRTC stats on |peerConnection| to find out whether audio is playing 10 // Queries WebRTC stats on |peerConnection| to find out whether audio is playing
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 127
128 var expectedPeaks = 3; 128 var expectedPeaks = 3;
129 console.log(numPeaks + '/' + expectedPeaks + ' signal peaks identified.'); 129 console.log(numPeaks + '/' + expectedPeaks + ' signal peaks identified.');
130 return numPeaks >= expectedPeaks; 130 return numPeaks >= expectedPeaks;
131 } 131 }
132 132
133 /** 133 /**
134 * @private 134 * @private
135 */ 135 */
136 function identifySilence_(samples) { 136 function identifySilence_(samples) {
137 // Look at the last 10K samples only to make detection a bit faster.
138 var window = samples.slice(-10000);
139
137 var average = 0; 140 var average = 0;
138 for (var i = 0; i < samples.length; ++i) 141 for (var i = 0; i < window.length; ++i)
139 average += samples[i] / samples.length; 142 average += window[i] / window.length;
140 143
141 // If silent (like when muted), we should get very near zero audio level. 144 // If silent (like when muted), we should get very near zero audio level.
142 console.log('Average audio level: ' + average); 145 console.log('Average audio level (last 10k samples): ' + average);
143 146
144 return average < 0.01 * MAX_AUDIO_OUTPUT_ENERGY; 147 return average < 0.01 * MAX_AUDIO_OUTPUT_ENERGY;
145 } 148 }
146 149
147 /** 150 /**
148 * @private 151 * @private
149 */ 152 */
150 function getAudioLevelFromStats_(response) { 153 function getAudioLevelFromStats_(response) {
151 var reports = response.result(); 154 var reports = response.result();
152 var audioOutputLevels = []; 155 var audioOutputLevels = [];
153 for (var i = 0; i < reports.length; ++i) { 156 for (var i = 0; i < reports.length; ++i) {
154 var report = reports[i]; 157 var report = reports[i];
155 if (report.names().indexOf('audioOutputLevel') != -1) { 158 if (report.names().indexOf('audioOutputLevel') != -1) {
156 audioOutputLevels.push(report.stat('audioOutputLevel')); 159 audioOutputLevels.push(report.stat('audioOutputLevel'));
157 } 160 }
158 } 161 }
159 return audioOutputLevels; 162 return audioOutputLevels;
160 } 163 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698