Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: third_party/WebKit/Source/modules/webaudio/AsyncAudioDecoder.cpp

Issue 2085353008: Allow disabling of resampling in decodeAudioData Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698