Bug 176789 - [GTK][GStreamer] Replaying a webm video twice causes the video to stop getting rendered
Summary: [GTK][GStreamer] Replaying a webm video twice causes the video to stop gettin...
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Philippe Normand
Depends on:
Reported: 2017-09-12 10:02 PDT by Charlie Turner
Modified: 2018-02-19 02:50 PST (History)
4 users (show)

See Also:

workaround (7.39 KB, patch)
2018-02-07 09:25 PST, Philippe Normand
no flags Details | Formatted Diff | Diff
Patch (9.68 KB, patch)
2018-02-19 01:12 PST, Philippe Normand
calvaris: review+
calvaris: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Charlie Turner 2017-09-12 10:02:52 PDT
If you visit,


You can do this,
  1) Let the video play out
  2) Click play again, let the video play out
  3) And again
  4) Click play again and you get some junk rendered and then a black screen.

I don't see any GStreamer related error messages.
Comment 1 Philippe Normand 2018-02-06 09:23:31 PST
I suppose this is happening with gst-gl enabled? Here rendering goes black at 3rd run, not the 4th.
Comment 2 Philippe Normand 2018-02-07 09:25:24 PST
Created attachment 333294 [details]

Maybe you can test this patch. It works here by ensuring the video sink has a valid context for every run but ideally I think we should receive the need-context everytime but it's not currently the case. See also https://bugzilla.gnome.org/show_bug.cgi?id=793224
Comment 3 Philippe Normand 2018-02-19 01:12:35 PST
Created attachment 334143 [details]
Comment 4 Xabier Rodríguez Calvar 2018-02-19 02:12:21 PST
Comment on attachment 334143 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=334143&action=review

> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:411
> +GstContext* MediaPlayerPrivateGStreamerBase::requestGLContext(const gchar* contextType)

gchar -> char

> Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:80
> +    GstContext* requestGLContext(const gchar* contextType);

gchar -> char
Comment 5 Philippe Normand 2018-02-19 02:50:13 PST
Committed r228641: <https://trac.webkit.org/changeset/228641>