Title: [143516] branches/chromium/1364/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
- Revision
- 143516
- Author
- cev...@google.com
- Date
- 2013-02-20 15:25:19 -0800 (Wed, 20 Feb 2013)
Log Message
Merge 141851
BUG=172926
Review URL: https://codereview.chromium.org/12317033
Modified Paths
Diff
Modified: branches/chromium/1364/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (143515 => 143516)
--- branches/chromium/1364/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2013-02-20 23:21:49 UTC (rev 143515)
+++ branches/chromium/1364/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp 2013-02-20 23:25:19 UTC (rev 143516)
@@ -101,6 +101,14 @@
return;
}
+ // After calling setBuffer() with a buffer having a different number of channels, there can in rare cases be a slight delay
+ // before the output bus is updated to the new number of channels because of use of tryLocks() in the context's updating system.
+ // In this case, if the the buffer has just been changed and we're not quite ready yet, then just output silence.
+ if (numberOfChannels() != buffer()->numberOfChannels()) {
+ outputBus->zero();
+ return;
+ }
+
size_t quantumFrameOffset;
size_t bufferFramesToProcess;
@@ -155,7 +163,7 @@
bool AudioBufferSourceNode::renderFromBuffer(AudioBus* bus, unsigned destinationFrameOffset, size_t numberOfFrames)
{
ASSERT(context()->isAudioThread());
-
+
// Basic sanity checking
ASSERT(bus);
ASSERT(buffer());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes