Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f9c441099509da64d9be105a21d01c9bbcf8cee2
      
https://github.com/WebKit/WebKit/commit/f9c441099509da64d9be105a21d01c9bbcf8cee2
  Author: Wenson Hsieh <[email protected]>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M Source/WebCore/Modules/webaudio/AudioBuffer.cpp
    M Source/WebCore/Modules/webaudio/AudioBuffer.h
    M Source/WebCore/Modules/webaudio/AudioNode.cpp
    M Source/WebCore/Modules/webaudio/AudioNode.h
    M Source/WebCore/Modules/webaudio/BaseAudioContext.cpp
    M Source/WebCore/Modules/webaudio/BaseAudioContext.h
    A Source/WebCore/Modules/webaudio/NoiseInjectionPolicy.h
    M Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Introduce plumbing for a policy flag that introduces noise when using some 
web audio APIs
https://bugs.webkit.org/show_bug.cgi?id=252498

Reviewed by Chris Dumez.

Introduce a new enum flag, `NoiseInjectionPolicy`, and plumb it through some 
web audio codepaths.
See below for more details. No test yet, since there is no change in behavior.

* Source/WebCore/Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::copyTo const):

Add a simple boolean `m_needsAdditionalNoise` flag to `AudioBuffer`. This will 
be turned on by
either audio nodes or the audio context itself, with the intent that 
`AudioBuffer` will reset it to
`false` once noise has been applied.

* Source/WebCore/Modules/webaudio/AudioBuffer.h:
(WebCore::AudioBuffer::setNeedsAdditionalNoise):
* Source/WebCore/Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::noiseInjectionPolicy const):

Expose a helper method on `AudioNode` that returns the context's policy flag.

* Source/WebCore/Modules/webaudio/AudioNode.h:
* Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:
(WebCore::noiseInjectionPolicy):
(WebCore::BaseAudioContext::BaseAudioContext):
* Source/WebCore/Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::noiseInjectionPolicy const):

Consult the `Document` here upon initialization, to determine whether or not 
noise injection is
needed. This noise injection policy is then propagated to any nodes attached to 
the context.

* Source/WebCore/Modules/webaudio/NoiseInjectionPolicy.h: Added.
* Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::OfflineAudioContext):
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/260478@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to