LLAMA-7406: Delay playback pos query after seek#938
Closed
Scony wants to merge 2 commits into
Closed
Conversation
Member
|
Please, comment on my question on #926 (comment) so that I can continue with #926 and then with this PR. |
Member
|
Likely this PR (commit 44eed71) won't be upstreamed, since the code it touches has been heavily refactored upstream. Still, it depends on the final version of #926 landing upstream as WebKit/WebKit#4601 |
webkit-early-warning-system
pushed a commit
to eocanha/WebKit
that referenced
this pull request
Sep 27, 2022
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 WebPlatformForEmbedded/WPEWebKit#938 would benefit from it. Original author: Pawel Lampe <pawel.lampe@gmail.com> See: WebPlatformForEmbedded/WPEWebKit#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
eocanha
added a commit
that referenced
this pull request
Sep 28, 2022
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 #938 would benefit from it. Original author: Pawel Lampe <pawel.lampe@gmail.com> See: #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
Member
aperezdc
pushed a commit
to WebKit/WebKit
that referenced
this pull request
Sep 29, 2022
…ange 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 WebPlatformForEmbedded/WPEWebKit#938 would benefit from it. Original author: Pawel Lampe <pawel.lampe@gmail.com> See: WebPlatformForEmbedded/WPEWebKit#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 (cherry picked from commit a8ae25e)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change on top of #926