Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3a7a2fc7cfa015de245a11892a1f059ddc29e7e1
https://github.com/WebKit/WebKit/commit/3a7a2fc7cfa015de245a11892a1f059ddc29e7e1
Author: Gatolocoses <[email protected]>
Date: 2026-10-15 (Thu, 15 Oct 2026)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Log Message:
-----------
[GStreamer][MSE] REGRESSION(317766@main): Muted video hidden when loading
starts fails with "Failed to push buffer"
https://bugs.webkit.org/show_bug.cgi?id=327551
Reviewed by Philippe Normand.
managePlayerSuspend() also runs at the end of createGSTPlayBin(), before the
URI is set. Since
317766@main it skips the state change only when the pipeline is exactly at
suspendTargetState(), so
an MSE pipeline still in NULL is set to PAUSED. playbin3 fails that change for
lack of a URI, and the
rollback leaves playsink's ASYNC_START cached in the bin: the real READY to
PAUSED change later skips
playsink, its chains stay in READY and the first buffer push fails ("Failed to
push buffer").
Suspending must never raise the state, so skip the state change when the
pipeline is at or below the
target state, as was done for NULL before 317766@main.
No new tests: layout tests run with
WEBKIT_GST_ALLOW_PLAYBACK_OF_INVISIBLE_VIDEOS=1, which disables suspending.
Tested manually on WebKitGTK 2.54.0.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::managePlayerSuspend):
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Canonical link: https://commits.webkit.org/323810@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications