Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1ba3cb16e390d6cb3ab6a230adde110ccdc4d0da
https://github.com/WebKit/WebKit/commit/1ba3cb16e390d6cb3ab6a230adde110ccdc4d0da
Author: Enrique Ocaña González <[email protected]>
Date: 2025-02-13 (Thu, 13 Feb 2025)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Log Message:
-----------
[GStreamer] Premature finishSeek in progressive video
https://bugs.webkit.org/show_bug.cgi?id=287568
Reviewed by Philippe Normand.
The MediaPlayerPrivateGStreamer::finishSeek() call is happening before
the GStreamer seek completes, causing the JavaScript webpage to see the
seek origin position on embedded systems with low CPU power (where seek
takes more time to complete). This has been reproduced on Raspberry Pi
using downstream wpe-2.38 and wpe-2.46, but I haven't been able to
reproduce it on the main branch on desktop with a powerful computer.
That doesn't mean that the problem isn't there.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/1456
MediaPlayerPrivateGStreamer::doSeek() calls updateBufferingStatus(),
which in turn calls updateStates(), which notifies the player of a
readyState change and HTMLMediaElement::setReadyState() calls
finishSeek().
This commit prevents the call to updateStates() from
updateBufferingStatus() in this particular case. This doesn't cause any
problem, since a new call to updateStates() will happen when the async
state change in the GStreamer pipeline completes.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::doSeek): Call updateBufferingStatus()
with the shouldUpdateStates parameter set to false.
(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus): Added
shouldUpdateStates parameter (defaults to true).
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Added shouldUpdateStates parameter to updateBufferingStatus(), with a default
value of true..
Canonical link: https://commits.webkit.org/290339@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