From 96cc879fab26de2450015fa41754fe18a48a2c08 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 15 May 2025 07:47:48 -0500 Subject: [PATCH] Issue #2741 - Part 3 - Clamp rolloff factor appropriately in PannerNodeEngine --- dom/media/webaudio/PannerNode.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dom/media/webaudio/PannerNode.cpp b/dom/media/webaudio/PannerNode.cpp index a51c18e24c..775b6875a2 100644 --- a/dom/media/webaudio/PannerNode.cpp +++ b/dom/media/webaudio/PannerNode.cpp @@ -373,7 +373,9 @@ void PannerNode::DestroyMediaStream() float PannerNodeEngine::LinearGainFunction(double aDistance) { - return 1 - mRolloffFactor * (std::max(std::min(aDistance, mMaxDistance), mRefDistance) - mRefDistance) / (mMaxDistance - mRefDistance); + double clampedRollof = std::clamp(mRolloffFactor, 0.0, 1.0); + return AssertedCast( + 1.0 - clampedRollof * (std::max(std::min(aDistance, mMaxDistance), mRefDistance) - mRefDistance) / (mMaxDistance - mRefDistance)); } float