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
This commit is contained in:
George Kiagiadakis 2015-10-26 15:30:08 +01:00
parent 8b0b68c4e8
commit c2f34b9814

View file

@ -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);
}
}
}