summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2016-06-17 19:59:13 +0100
committerTim-Philipp Müller <tim@centricular.com>2016-06-17 19:59:13 +0100
commit33fb50b308481bc31962f0eeba7a38786cf9f55b (patch)
treef51719d7098936429dc546ae58bbf52aece423e9 /ext
parent5a7217a147daa2dc150f120b32889d78d5ff4883 (diff)
soup: work around frequent deadlocks in GLib type initialisation
.. by registering the types from the plugin init function. This seems to help, but we'll see if it's enough (might need similar things elsewhere). https://bugzilla.gnome.org/show_bug.cgi?id=693911 https://bugzilla.gnome.org/show_bug.cgi?id=674885
Diffstat (limited to 'ext')
-rw-r--r--ext/soup/gstsoup.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/soup/gstsoup.c b/ext/soup/gstsoup.c
index 10bdba748..3be491d2e 100644
--- a/ext/soup/gstsoup.c
+++ b/ext/soup/gstsoup.c
@@ -34,6 +34,20 @@ plugin_init (GstPlugin * plugin)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif
+ /* see https://bugzilla.gnome.org/show_bug.cgi?id=674885 */
+ g_type_ensure (G_TYPE_SOCKET);
+ g_type_ensure (G_TYPE_SOCKET_ADDRESS);
+ g_type_ensure (G_TYPE_SOCKET_SERVICE);
+ g_type_ensure (G_TYPE_SOCKET_FAMILY);
+ g_type_ensure (G_TYPE_SOCKET_CLIENT);
+ g_type_ensure (G_TYPE_RESOLVER);
+ g_type_ensure (G_TYPE_PROXY_RESOLVER);
+ g_type_ensure (G_TYPE_PROXY_ADDRESS);
+ g_type_ensure (G_TYPE_TLS_CERTIFICATE);
+ g_type_ensure (G_TYPE_TLS_CONNECTION);
+ g_type_ensure (G_TYPE_TLS_DATABASE);
+ g_type_ensure (G_TYPE_TLS_INTERACTION);
+
gst_element_register (plugin, "souphttpsrc", GST_RANK_PRIMARY,
GST_TYPE_SOUP_HTTP_SRC);
gst_element_register (plugin, "souphttpclientsink", GST_RANK_NONE,