Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 293dfbd834b9cedc7234ce739c9b63e57ab5200d
      
https://github.com/WebKit/WebKit/commit/293dfbd834b9cedc7234ce739c9b63e57ab5200d
  Author: Enrique Ocaña González <[email protected]>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

  Log Message:
  -----------
  [GStreamer] Sometimes progressive playback is not resumed after seek
https://bugs.webkit.org/show_bug.cgi?id=300041

Reviewed by Philippe Normand.

Sometimes, in a downstream multimedia player, regular video playback
remains paused after seek instead of resuming automatically. It will
play normally when play() or another seek operation are manually
triggered.

Log analys shows that in the failing case the browser missed the state
transition to 'HaveCurrentData', and application can't resume playback
after seek. It was missed because it happened the gstreamer pipeline
remains in state transition for too long and can't process buffering
events. Normally it goes: seek -> Paused pipeline -> buffering
(HaveCurrentData) -> finish_buffering(HaveEnoughData) -> start_playback.
However, in the failing case, seek takes too long (~2sec) to set the
PAUSED state on the pipeline and we are missing the
buffering(HaveCurrentData) stage.

See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/1561

This patch returns the player readyState to HaveCurrentData and the
networkState to Loading when a seek is being processed. The states will
reach their final values as soon as the async state transition caused by
the seek finishes.

Original author: Volodymyr Ogorodnik 
(https://github.com/volodymyr-ogorodnik-red)

* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Reset readyState and 
networkState to HaveCurrentData and Loading while the player is in an async 
state transition (in a seek) and buffering.

Canonical link: https://commits.webkit.org/300933@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

Reply via email to