Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a8ae25e11301ba67efa18134a925728e3f154b56
https://github.com/WebKit/WebKit/commit/a8ae25e11301ba67efa18134a925728e3f154b56
Author: Enrique Ocaña González <[email protected]>
Date: 2022-09-27 (Tue, 27 Sep 2022)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Log Message:
-----------
[GStreamer] Allow finishing seek on sync state change
https://bugs.webkit.org/show_bug.cgi?id=245529
Reviewed by Xabier Rodriguez-Calvar.
Some devices have audio sinks that don't not support async state changes i.e.
it completes
transition to PAUSED state on preroll. In those cases, there's a need to be
able to finish
seeks in sync state changes (currently, only seeks on async state changes are
supported).
This patch adds support to handle that use case by finishing the seek from
updateStates().
This new code makes the old processing in asyncStateChangeDone() redundant,
because in those
circumstances the handling of the GST_MESSAGE_STATE_CHANGED message in
handleMessage()
already calls updateStates(). Still, asyncStateChangeDone() has been preserved
because it's
virtual and the MediaPlayerPrivateGStreamerMSE subclass still needs it for its
own purpose.
The code to finish seek has been refactored to its own function. This isn't
strictly needed
but would be really helpful for our downstream port, where
https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/938 would benefit from
it.
Original author: Pawel Lampe <[email protected]>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/926
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Added comment about
super and subclass processing needs for GST_MESSAGE_ASYNC_DONE.
(WebCore::MediaPlayerPrivateGStreamer::finishSeek): Refactored code to finish
seek.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Process finish seek from
here.
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone): Deleted.
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone): Now empty
implementation for the superclass.
Canonical link: https://commits.webkit.org/254923@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes