[webkit-changes] [WebKit/WebKit] fe0e18: [GStreamer] Deadlock when rendering frames to canvas

Philippe Normand noreply at github.com
Thu Jan 16 03:37:36 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fe0e185d178c1716acbad24a144a09c1bd4f0d06
      https://github.com/WebKit/WebKit/commit/fe0e185d178c1716acbad24a144a09c1bd4f0d06
  Author: Philippe Normand <philn at igalia.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

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

  Log Message:
  -----------
  [GStreamer] Deadlock when rendering frames to canvas
https://bugs.webkit.org/show_bug.cgi?id=285988

Reviewed by Xabier Rodriguez-Calvar.

Release the player sample mutex before doing a potential conversion and rendering, otherwise another
thread might attempt to lock it while the conversion is sill on-going, leading to deadlocks. The
video frame converter also now times out after waiting 200ms on the pipeline, otherwise it might get
stuck forever, leading to potential zombie WebProcesses.

This was manually tested on a Debug build, with the mediastream tests.

* Source/WebCore/platform/graphics/gstreamer/GStreamerVideoFrameConverter.cpp:
(WebCore::GStreamerVideoFrameConverter::convert):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::paint):

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