| Index: Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
 | 
| ===================================================================
 | 
| --- Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	(revision 143515)
 | 
| +++ Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	(working copy)
 | 
| @@ -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());
 | 
| 
 |