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

Side by Side Diff: third_party/WebKit/Source/platform/audio/DynamicsCompressorKernel.cpp

Issue 1636873005: blink: Fix naming and const-ness of constants and non-constants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: constants: indents Created 4 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 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 , m_preDelayReadIndex(0) 48 , m_preDelayReadIndex(0)
49 , m_preDelayWriteIndex(DefaultPreDelayFrames) 49 , m_preDelayWriteIndex(DefaultPreDelayFrames)
50 , m_ratio(uninitializedValue) 50 , m_ratio(uninitializedValue)
51 , m_slope(uninitializedValue) 51 , m_slope(uninitializedValue)
52 , m_linearThreshold(uninitializedValue) 52 , m_linearThreshold(uninitializedValue)
53 , m_dbThreshold(uninitializedValue) 53 , m_dbThreshold(uninitializedValue)
54 , m_dbKnee(uninitializedValue) 54 , m_dbKnee(uninitializedValue)
55 , m_kneeThreshold(uninitializedValue) 55 , m_kneeThreshold(uninitializedValue)
56 , m_kneeThresholdDb(uninitializedValue) 56 , m_kneeThresholdDb(uninitializedValue)
57 , m_ykneeThresholdDb(uninitializedValue) 57 , m_ykneeThresholdDb(uninitializedValue)
58 , m_K(uninitializedValue) 58 , m_knee(uninitializedValue)
59 { 59 {
60 setNumberOfChannels(numberOfChannels); 60 setNumberOfChannels(numberOfChannels);
61 61
62 // Initializes most member variables 62 // Initializes most member variables
63 reset(); 63 reset();
64 64
65 m_meteringReleaseK = static_cast<float>(discreteTimeConstantForSampleRate(me teringReleaseTimeConstant, sampleRate)); 65 m_meteringReleaseK = static_cast<float>(discreteTimeConstantForSampleRate(me teringReleaseTimeConstant, sampleRate));
66 } 66 }
67 67
68 void DynamicsCompressorKernel::setNumberOfChannels(unsigned numberOfChannels) 68 void DynamicsCompressorKernel::setNumberOfChannels(unsigned numberOfChannels)
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 m_ratio = ratio; 183 m_ratio = ratio;
184 m_slope = 1 / m_ratio; 184 m_slope = 1 / m_ratio;
185 185
186 float k = kAtSlope(1 / m_ratio); 186 float k = kAtSlope(1 / m_ratio);
187 187
188 m_kneeThresholdDb = dbThreshold + dbKnee; 188 m_kneeThresholdDb = dbThreshold + dbKnee;
189 m_kneeThreshold = decibelsToLinear(m_kneeThresholdDb); 189 m_kneeThreshold = decibelsToLinear(m_kneeThresholdDb);
190 190
191 m_ykneeThresholdDb = linearToDecibels(kneeCurve(m_kneeThreshold, k)); 191 m_ykneeThresholdDb = linearToDecibels(kneeCurve(m_kneeThreshold, k));
192 192
193 m_K = k; 193 m_knee = k;
194 } 194 }
195 return m_K; 195 return m_knee;
196 } 196 }
197 197
198 void DynamicsCompressorKernel::process(const float* sourceChannels[], 198 void DynamicsCompressorKernel::process(const float* sourceChannels[],
199 float* destinationChannels[], 199 float* destinationChannels[],
200 unsigned numberOfChannels, 200 unsigned numberOfChannels,
201 unsigned framesToProcess, 201 unsigned framesToProcess,
202 202
203 float dbThreshold, 203 float dbThreshold,
204 float dbKnee, 204 float dbKnee,
205 float ratio, 205 float ratio,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 // Polynomial of the form 249 // Polynomial of the form
250 // y = a + b*x + c*x^2 + d*x^3 + e*x^4; 250 // y = a + b*x + c*x^2 + d*x^3 + e*x^4;
251 251
252 float y1 = releaseFrames * releaseZone1; 252 float y1 = releaseFrames * releaseZone1;
253 float y2 = releaseFrames * releaseZone2; 253 float y2 = releaseFrames * releaseZone2;
254 float y3 = releaseFrames * releaseZone3; 254 float y3 = releaseFrames * releaseZone3;
255 float y4 = releaseFrames * releaseZone4; 255 float y4 = releaseFrames * releaseZone4;
256 256
257 // All of these coefficients were derived for 4th order polynomial curve fit ting where the y values 257 // All of these coefficients were derived for 4th order polynomial curve fit ting where the y values
258 // match the evenly spaced x values as follows: (y1 : x == 0, y2 : x == 1, y 3 : x == 2, y4 : x == 3) 258 // match the evenly spaced x values as follows: (y1 : x == 0, y2 : x == 1, y 3 : x == 2, y4 : x == 3)
259 float kA = 0.9999999999999998f*y1 + 1.8432219684323923e-16f*y2 - 1.937339435 1676423e-16f*y3 + 8.824516011816245e-18f*y4; 259 float a = 0.9999999999999998f * y1 + 1.8432219684323923e-16f * y2 - 1.937339 4351676423e-16f * y3 + 8.824516011816245e-18f * y4;
260 float kB = -1.5788320352845888f*y1 + 2.3305837032074286f*y2 - 0.914119420484 0429f*y3 + 0.1623677525612032f*y4; 260 float b = -1.5788320352845888f * y1 + 2.3305837032074286f * y2 - 0.914119420 4840429f * y3 + 0.1623677525612032f * y4;
261 float kC = 0.5334142869106424f*y1 - 1.272736789213631f*y2 + 0.92588560422075 12f*y3 - 0.18656310191776226f*y4; 261 float c = 0.5334142869106424f * y1 - 1.272736789213631f * y2 + 0.92588560422 07512f * y3 - 0.18656310191776226f * y4;
262 float kD = 0.08783463138207234f*y1 - 0.1694162967925622f*y2 + 0.085880579515 95272f*y3 - 0.00429891410546283f*y4; 262 float d = 0.08783463138207234f * y1 - 0.1694162967925622f * y2 + 0.085880579 51595272f * y3 - 0.00429891410546283f * y4;
263 float kE = -0.042416883008123074f*y1 + 0.1115693827987602f*y2 - 0.0976467632 5265872f*y3 + 0.028494263462021576f*y4; 263 float e = -0.042416883008123074f * y1 + 0.1115693827987602f * y2 - 0.0976467 6325265872f * y3 + 0.028494263462021576f * y4;
264 264
265 // x ranges from 0 -> 3 0 1 2 3 265 // x ranges from 0 -> 3 0 1 2 3
266 // -15 -10 -5 0db 266 // -15 -10 -5 0db
267 267
268 // y calculates adaptive release frames depending on the amount of compressi on. 268 // y calculates adaptive release frames depending on the amount of compressi on.
269 269
270 setPreDelayTime(preDelayTime); 270 setPreDelayTime(preDelayTime);
271 271
272 const int nDivisionFrames = 32; 272 const int nDivisionFrames = 32;
273 273
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 // Contain within range: -12 -> 0 then scale to go from 0 -> 3 318 // Contain within range: -12 -> 0 then scale to go from 0 -> 3
319 float x = compressionDiffDb; 319 float x = compressionDiffDb;
320 x = clampTo(x, -12.0f, 0.0f); 320 x = clampTo(x, -12.0f, 0.0f);
321 x = 0.25f * (x + 12); 321 x = 0.25f * (x + 12);
322 322
323 // Compute adaptive release curve using 4th order polynomial. 323 // Compute adaptive release curve using 4th order polynomial.
324 // Normal values for the polynomial coefficients would create a mono tonically increasing function. 324 // Normal values for the polynomial coefficients would create a mono tonically increasing function.
325 float x2 = x * x; 325 float x2 = x * x;
326 float x3 = x2 * x; 326 float x3 = x2 * x;
327 float x4 = x2 * x2; 327 float x4 = x2 * x2;
328 float releaseFrames = kA + kB * x + kC * x2 + kD * x3 + kE * x4; 328 float releaseFrames = a + b * x + c * x2 + d * x3 + e * x4;
329 329
330 #define kSpacingDb 5 330 #define kSpacingDb 5
331 float dbPerFrame = kSpacingDb / releaseFrames; 331 float dbPerFrame = kSpacingDb / releaseFrames;
332 332
333 envelopeRate = decibelsToLinear(dbPerFrame); 333 envelopeRate = decibelsToLinear(dbPerFrame);
334 } else { 334 } else {
335 // Attack mode - compressionDiffDb should be positive dB 335 // Attack mode - compressionDiffDb should be positive dB
336 336
337 // Fix gremlins. 337 // Fix gremlins.
338 if (std::isnan(compressionDiffDb)) 338 if (std::isnan(compressionDiffDb))
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 m_preDelayBuffers[i]->zero(); 462 m_preDelayBuffers[i]->zero();
463 463
464 m_preDelayReadIndex = 0; 464 m_preDelayReadIndex = 0;
465 m_preDelayWriteIndex = DefaultPreDelayFrames; 465 m_preDelayWriteIndex = DefaultPreDelayFrames;
466 466
467 m_maxAttackCompressionDiffDb = -1; // uninitialized state 467 m_maxAttackCompressionDiffDb = -1; // uninitialized state
468 } 468 }
469 469
470 } // namespace blink 470 } // namespace blink
471 471
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698