42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
From e83e4c7460972898dc06a5f5ab36eed7c6b101b5 Mon Sep 17 00:00:00 2001
|
|
From: Jer Noble <jer.noble@apple.com>
|
|
Date: Tue, 11 Jun 2024 11:54:06 -0700
|
|
Subject: [PATCH] Cherry-pick 272448.1080@safari-7618.3.10-branch
|
|
(64c9479d6f29). https://bugs.webkit.org/show_bug.cgi?id=275273
|
|
|
|
Add check in AudioBufferSourceNode::renderFromBuffer() when detune is set to large negative value
|
|
https://bugs.webkit.org/show_bug.cgi?id=275273
|
|
rdar://125617842
|
|
|
|
Reviewed by Eric Carlson.
|
|
|
|
* Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:
|
|
(WebCore::AudioBufferSourceNode::renderFromBuffer):
|
|
|
|
Canonical link: https://commits.webkit.org/274313.345@webkitglib/2.44
|
|
---
|
|
.../webaudio/AudioBufferSourceNode.cpp | 7 +++++
|
|
1 file changed, 7 insertions(+)
|
|
|
|
diff --git a/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp b/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
|
|
index f86bffb9b507..298bd48cdff5 100644
|
|
--- a/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
|
|
+++ b/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp
|
|
@@ -328,9 +328,16 @@ bool AudioBufferSourceNode::renderFromBuffer(AudioBus* bus, unsigned destination
|
|
virtualReadIndex = readIndex;
|
|
} else if (!pitchRate) {
|
|
unsigned readIndex = static_cast<unsigned>(virtualReadIndex);
|
|
+ int deltaFrames = static_cast<int>(virtualDeltaFrames);
|
|
+ maxFrame = static_cast<unsigned>(virtualMaxFrame);
|
|
+
|
|
+ if (readIndex >= maxFrame)
|
|
+ readIndex -= deltaFrames;
|
|
|
|
for (unsigned i = 0; i < numberOfChannels; ++i)
|
|
std::fill_n(destinationChannels[i] + writeIndex, framesToProcess, sourceChannels[i][readIndex]);
|
|
+
|
|
+ virtualReadIndex = readIndex;
|
|
} else if (reverse) {
|
|
unsigned maxFrame = static_cast<unsigned>(virtualMaxFrame);
|
|
unsigned minFrame = static_cast<unsigned>(floorf(virtualMinFrame));
|