Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: 0d765dcb98e1996814bf3b945a734857e5a3f38d
https://github.com/WebKit/WebKit/commit/0d765dcb98e1996814bf3b945a734857e5a3f38d
Author: Philippe Normand <[email protected]>
Date: 2026-03-30 (Mon, 30 Mar 2026)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
M Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h
M Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h
M Source/WebCore/platform/gstreamer/GStreamerQuirkOpenMAX.h
M Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h
M Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h
M Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp
M Source/WebCore/platform/gstreamer/GStreamerQuirks.h
Log Message:
-----------
Cherry-pick 310087@main (82ddc6a0bb6f).
https://bugs.webkit.org/show_bug.cgi?id=310895
[GStreamer] Pausing the pipeline at EOS is prone to resource exhaustion
https://bugs.webkit.org/show_bug.cgi?id=310895
Reviewed by Alicia Boya Garcia.
In 270766@main the pipeline EOS state was changed from READY to PAUSED due
to some "downstream
platforms" having issues. The problem is that video and audio decoder
resources are not released
anymore unless a 5 minutes timer is fired after EOS. On test bots where
multiple web pages run
simultaneously this behavior can lead to file descriptors exhaustion.
The proposed solution is to keep this EOS PAUSED state for all quirks
excepted the Qualcomm quirk
which is not affected. If no quirk is enabled, the EOS state is now READY,
same as before
270766@main.
*
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::tearDown):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::eosTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::pausedTimerFired): Deleted.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkOpenMAX.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkQualcomm.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h:
* Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp:
(WebCore::GStreamerQuirksManager::eosMediaPlayerState const):
* Source/WebCore/platform/gstreamer/GStreamerQuirks.h:
(WebCore::GStreamerQuirk::eosMediaPlayerState const):
Canonical link: https://commits.webkit.org/310087@main
Canonical link: https://commits.webkit.org/305877.333@webkitglib/2.52
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications