Index: third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp |
diff --git a/third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp b/third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp |
index 12aa3b8895ba5dc3c96aed0fe870d09c1aed428e..c42c0cff6c04d90bf7062f3644ffff1d5b42a0d9 100644 |
--- a/third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp |
+++ b/third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp |
@@ -45,19 +45,28 @@ AsyncAudioDecoder::~AsyncAudioDecoder() |
{ |
} |
-void AsyncAudioDecoder::decodeAsync(DOMArrayBuffer* audioData, float sampleRate, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ScriptPromiseResolver* resolver, BaseAudioContext* context) |
+void AsyncAudioDecoder::decodeAsync(DOMArrayBuffer* audioData, float sampleRate, bool disableResampling, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ScriptPromiseResolver* resolver, BaseAudioContext* context) |
{ |
ASSERT(isMainThread()); |
ASSERT(audioData); |
if (!audioData) |
return; |
- m_thread->getWebTaskRunner()->postTask(BLINK_FROM_HERE, crossThreadBind(&AsyncAudioDecoder::decode, wrapCrossThreadPersistent(audioData), sampleRate, wrapCrossThreadPersistent(successCallback), wrapCrossThreadPersistent(errorCallback), wrapCrossThreadPersistent(resolver), wrapCrossThreadPersistent(context))); |
+ m_thread->getWebTaskRunner()->postTask( |
+ BLINK_FROM_HERE, |
+ crossThreadBind( |
+ &AsyncAudioDecoder::decode, |
+ wrapCrossThreadPersistent(audioData), |
+ sampleRate, |
+ disableResampling, |
+ wrapCrossThreadPersistent(successCallback), |
+ wrapCrossThreadPersistent(errorCallback), |
+ wrapCrossThreadPersistent(resolver), wrapCrossThreadPersistent(context))); |
} |
-void AsyncAudioDecoder::decode(DOMArrayBuffer* audioData, float sampleRate, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ScriptPromiseResolver* resolver, BaseAudioContext* context) |
+void AsyncAudioDecoder::decode(DOMArrayBuffer* audioData, float sampleRate, bool disableResampling, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ScriptPromiseResolver* resolver, BaseAudioContext* context) |
{ |
- RefPtr<AudioBus> bus = createBusFromInMemoryAudioFile(audioData->data(), audioData->byteLength(), false, sampleRate); |
+ RefPtr<AudioBus> bus = createBusFromInMemoryAudioFile(audioData->data(), audioData->byteLength(), false, disableResampling ? 0 : sampleRate); |
// Decoding is finished, but we need to do the callbacks on the main thread. |
// A reference to |*bus| is retained by WTF::Function and will be removed after notifyComplete() is done. |