Index: third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
diff --git a/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp b/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
index 2ebf22d80ace89a6d8fa801b9e6b17ec8cd1f5c7..cbdee708ceed032239ea2270fb50a6ff8879f99d 100644 |
--- a/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
+++ b/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
@@ -48,6 +48,7 @@ |
#include "modules/webaudio/ChannelMergerNode.h" |
#include "modules/webaudio/ChannelSplitterNode.h" |
#include "modules/webaudio/ConvolverNode.h" |
+#include "modules/webaudio/DecodeAudioDataOptions.h" |
#include "modules/webaudio/DefaultAudioDestinationNode.h" |
#include "modules/webaudio/DelayNode.h" |
#include "modules/webaudio/DynamicsCompressorNode.h" |
@@ -278,7 +279,13 @@ AudioBuffer* BaseAudioContext::createBuffer(unsigned numberOfChannels, size_t nu |
return buffer; |
} |
-ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArrayBuffer* audioData, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ExceptionState& exceptionState) |
+ScriptPromise BaseAudioContext::decodeAudioData( |
+ ScriptState* scriptState, |
+ DOMArrayBuffer* audioData, |
+ bool disableResampling, |
+ AudioBufferCallback* successCallback, |
+ AudioBufferCallback* errorCallback, |
+ ExceptionState& exceptionState) |
{ |
DCHECK(isMainThread()); |
DCHECK(audioData); |
@@ -291,11 +298,41 @@ ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArr |
DCHECK_GT(rate, 0); |
m_decodeAudioResolvers.add(resolver); |
- m_audioDecoder.decodeAsync(audioData, rate, successCallback, errorCallback, resolver, this); |
+ |
+ m_audioDecoder.decodeAsync( |
+ audioData, |
+ rate, |
+ disableResampling, |
+ successCallback, |
+ errorCallback, |
+ resolver, |
+ this); |
return promise; |
} |
+ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArrayBuffer* audioData, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback, ExceptionState& exceptionState) |
+{ |
+ return decodeAudioData( |
+ scriptState, |
+ audioData, |
+ false, |
+ successCallback, |
+ errorCallback, |
+ exceptionState); |
+} |
+ |
+ScriptPromise BaseAudioContext::decodeAudioData(ScriptState* scriptState, DOMArrayBuffer* audioData, const DecodeAudioDataOptions& decodeOptions, ExceptionState& exceptionState) |
+{ |
+ return decodeAudioData( |
+ scriptState, |
+ audioData, |
+ decodeOptions.disableResampling(), |
+ nullptr, |
+ nullptr, |
+ exceptionState); |
+} |
+ |
void BaseAudioContext::handleDecodeAudioData(AudioBuffer* audioBuffer, ScriptPromiseResolver* resolver, AudioBufferCallback* successCallback, AudioBufferCallback* errorCallback) |
{ |
DCHECK(isMainThread()); |