[Webkit-unassigned] [Bug 183362] [GTK] [gstreamer] video won't unpause when built with -DUSE_GSTREAMER_GL=OFF
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Apr 12 07:47:58 PDT 2018
https://bugs.webkit.org/show_bug.cgi?id=183362
--- Comment #6 from Miguel Gomez <magomez at igalia.com> ---
(In reply to Hyunjun Ko from comment #4)
> Created attachment 337686 [details]
> Patch
Hyunjun, your patch is ok and works, but I'd like to upload a new one to improve some things on MediaPlayerPrivateGStreamerBase. I think there was an error to modify the drawCancelled flag inside cancelRepaint() and I'd like to remove it from there.
cancelRepaint() mission is to avoid a deadlock when pausing video at the same time that the gstreamer thread is waiting for the main thread to paint: the main thread will lock trying to change the state of the pipeline while gstreamer is locked waiting for the main thread to paint (see https://bugs.webkit.org/show_bug.cgi?id=170003). So we shouldn't do anything extra inside that function. BTW this can only happen in the non AC case, so no need to handle other cases there.
When AC is enabled, with gst-gl there's no condition to wait, and without gst-gl the condition is notified from the compositor thread, not the main thread, so there's no deadlock.
Eventually cancelRepaint() is used in the destructor as well to release the gstreamer thread from m_drawCondition, but setting the drawCancelled flag there is a mistake IMO.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180412/7f1c33fe/attachment-0002.html>
More information about the webkit-unassigned
mailing list