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