Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a1f6b0bee5a43b8757f15988d9f0585cd7444b6b
      
https://github.com/WebKit/WebKit/commit/a1f6b0bee5a43b8757f15988d9f0585cd7444b6b
  Author: Philippe Normand <[email protected]>
  Date:   2025-09-03 (Wed, 03 Sep 2025)

  Changed paths:
    M Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.h
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/WebKitAudioSinkGStreamer.h
    M Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.cpp
    M Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp

  Log Message:
  -----------
  [GStreamer][WebAudio] Garbled rendering when the internal audio mixer is 
enabled
https://bugs.webkit.org/show_bug.cgi?id=298235

Reviewed by Xabier Rodriguez-Calvar.

When the WEBKIT_GST_ENABLE_AUDIO_MIXER=1 environment variable is set, audio 
buffers are sent to a
separate pipeline using interaudiosink. That process-wide singleton pipeline is 
then in charge of
audio mixing and rendering to an actual audio device.

For WebAudio it wasn't working properly, leading to garbled rendering, due to 
the audiomixer sink
pad corresponding to the WebAudio source not using the same sample rate and 
also interaudiosrc using
a sample period-size too big. We now align these values between the WebAudio 
sink and its matching
interaudiosrc audiomixer branch.

The Rialto WebAudio sink configuration was also moved to the Rialto quirk and 
the version check
removed (I couldn't find the reasoning behind that).

* Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
* Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp:
(WebCore::GStreamerAudioMixer::registerProducer):
(WebCore::GStreamerAudioMixer::configureSourcePeriodTime):
* Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.h:
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::createPlatformAudioSink):
* Source/WebCore/platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp:
(webKitAudioSinkConfigure):
(webKitAudioSinkChangeState):
(webKitAudioSinkConstructed):
(webkitAudioSinkNew):
* Source/WebCore/platform/graphics/gstreamer/WebKitAudioSinkGStreamer.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.cpp:
(WebCore::GStreamerQuirkRialto::createWebAudioSink):
* Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp:
(WebCore::GStreamerQuirksManager::createWebAudioSink):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to