[webkit-changes] [WebKit/WebKit] 81376c: [GStreamer][MSE] Take playbin's states lock when s...

Xabier Rodríguez noreply at github.com
Wed Jun 19 03:08:24 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 81376ca14bbf0b8e69cfa36bef4e81a76d9aa7a6
      https://github.com/WebKit/WebKit/commit/81376ca14bbf0b8e69cfa36bef4e81a76d9aa7a6
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

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

  Log Message:
  -----------
  [GStreamer][MSE] Take playbin's states lock when sending seek event
https://bugs.webkit.org/show_bug.cgi?id=275566

Reviewed by Alicia Boya Garcia.

This fixes possible race between application (triggering another seek from 'seeked' event) and 'state chagne'
continuation (triggered by playbin).

Top level bin element does change the state as result of 'async-done' handling from previous seek request (see
gst_bin_continue_func in gstbin.c). Which may race with handling of 'async-start' posted by sinks on flushing seek. And
may leave the pipeline in inconsistent state and 'hanging' seek that never finishes.

By taking the states lock of top level bin element player will wait for possible state change continuation to complete
before sending next seek event.

Based on a patch by Eugene Mutavchi <Ievgen_Mutavchi at comcast.com>.

* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):

Canonical link: https://commits.webkit.org/280168@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list