Changeset 102733 in webkit
- Timestamp:
- Dec 13, 2011 8:56:56 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r102732 r102733 1 2011-12-13 James Wei <james.wei@intel.com> 2 3 Optimize to not use pow() in the inner loop in AudioParamTimeline 4 https://bugs.webkit.org/show_bug.cgi?id=73530 5 6 Reviewed by Kenneth Russell. 7 8 No new tests. 9 10 * webaudio/AudioParamTimeline.cpp: 11 (WebCore:AudioParamTimeline:valuesForTimeRangeImpl): 12 1 13 2011-12-13 Hajime Morrita <morrita@chromium.org> 2 14 -
trunk/Source/WebCore/webaudio/AudioParamTimeline.cpp
r96780 r102733 246 246 values[writeIndex] = value; 247 247 } else { 248 // Interpolate in log space. 249 value1 = log2f(value1); 250 value2 = log2f(value2); 251 252 // FIXME: optimize to not use pow() in inner loop, this is just a simple exponential ramp. 248 float numSampleFrames = deltaTime * sampleRate; 249 // The value goes exponentially from value1 to value2 in a duration of deltaTime seconds (corresponding to numSampleFrames). 250 // Compute the per-sample multiplier. 251 float multiplier = powf(value2 / value1, 1 / numSampleFrames); 253 252 for (; writeIndex < fillToFrame; ++writeIndex) { 254 float x = (currentTime - time1) * k;255 value = (1 - x) * value1 + x * value2;256 value = powf(2.0f, value);257 253 values[writeIndex] = value; 254 value *= multiplier; 258 255 currentTime += sampleFrameTimeIncr; 259 256 }
Note: See TracChangeset
for help on using the changeset viewer.