From c2f34b981427f2698ce47195627a40894b640962 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Mon, 26 Oct 2015 15:30:08 +0100 Subject: [PATCH] waylandsink: don't advertise the local wl_display context This wl_display proxy is temporary only until waylandsink goes NULL, at which point the connection to the display is disposed. Unfortunately, if this is advertised as a GstContext, playbin will cache it and re-feed it to the sink when it goes PLAYING again, but the wl_display pointer will at that point be invalid and cause a crash. Another solution to the problem would be to also cache the GstWlDisplay object inside the GstContext, which would automatically ref-count the display connection, but I see no reason in doing that at the moment, as there are no known users of this GstContext outside waylandsink. It's probably better to avoid chasing hidden refcounts. https://bugzilla.gnome.org/show_bug.cgi?id=756567 --- ext/wayland/gstwaylandsink.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c index c80410b8..1952776 100644 --- a/ext/wayland/gstwaylandsink.c +++ b/ext/wayland/gstwaylandsink.c @@ -290,12 +290,6 @@ gst_wayland_sink_find_display (GstWaylandSink * sink) ("Failed to create GstWlDisplay: '%s'", error->message)); g_error_free (error); ret = FALSE; - } else { - /* inform the world about the new display */ - context = - gst_wayland_display_handle_context_new (sink->display->display); - msg = gst_message_new_have_context (GST_OBJECT_CAST (sink), context); - gst_element_post_message (GST_ELEMENT_CAST (sink), msg); } } } -- 2.7.4