* threading system as one of the very first things in your program
* (see the example at the beginning of this section).
*
- * Returns: (transfer full): a pointer to GStreamer's option group.
+ * Returns: (transfer full) (nullable): a pointer to GStreamer's option group.
*/
GOptionGroup *
find_executable_path (void)
{
GError *error = NULL;
- gchar *path;
if (_gst_executable_path)
return;
- path = g_file_read_link ("/proc/self/exe", &error);
-
- if (path) {
- _gst_executable_path = g_path_get_dirname (path);
- g_free (path);
- }
+ _gst_executable_path = g_file_read_link ("/proc/self/exe", &error);
+ if (error)
+ g_error_free (error);
}
#elif defined(G_OS_WIN32)
static void
* external process, the returned path will be the same as from the
* parent process.
*
- * Returns: (transfer none): The path of the executable that
+ * Returns: (transfer none) (nullable): The path of the executable that
* initialized GStreamer, or %NULL if it could not be determined.
*
* Since: 1.14
return gst_initialized;
}
-#ifndef GST_DISABLE_REGISTRY
+#ifndef GST_DISABLE_OPTION_PARSING
+# ifndef GST_DISABLE_REGISTRY
static void
add_path_func (gpointer data, gpointer user_data)
{
_priv_gst_plugin_paths =
g_list_append (_priv_gst_plugin_paths, g_strdup (data));
}
+# endif
#endif
#ifndef GST_DISABLE_OPTION_PARSING
/*
* this bit handles:
- * - initalization of threads if we use them
+ * - initialization of threads if we use them
* - log handler
* - initial output
* - initializes gst_format
g_type_class_ref (gst_stream_flags_get_type ());
g_type_class_ref (gst_stream_type_get_type ());
g_type_class_ref (gst_stack_trace_flags_get_type ());
+ g_type_class_ref (gst_promise_result_get_type ());
_priv_gst_event_initialize ();
_priv_gst_buffer_initialize ();
return TRUE;
}
-#ifndef GST_DISABLE_GST_DEBUG
+#ifndef GST_DISABLE_OPTION_PARSING
+# ifndef GST_DISABLE_GST_DEBUG
static gboolean
select_all (GstPlugin * plugin, gpointer user_data)
{
g_slist_free (list);
g_print ("\n");
}
-#endif
+# endif /* GST_DISABLE_OPTION_PARSING */
+#endif /* GST_DISABLE_GST_DEBUG */
#ifndef GST_DISABLE_OPTION_PARSING
static gboolean
GstBinClass *bin_class;
GstClock *clock;
+ if (!gst_initialized)
+ return;
+
GST_INFO ("deinitializing GStreamer");
if (gst_deinitialized) {
return;
}
g_thread_pool_set_max_unused_threads (0);
- bin_class = GST_BIN_CLASS (g_type_class_peek (gst_bin_get_type ()));
+ bin_class = (GstBinClass *) g_type_class_peek (gst_bin_get_type ());
if (bin_class && bin_class->pool != NULL) {
g_thread_pool_free (bin_class->pool, FALSE, TRUE);
bin_class->pool = NULL;
g_type_class_unref (g_type_class_peek (gst_stream_flags_get_type ()));
g_type_class_unref (g_type_class_peek (gst_debug_color_mode_get_type ()));
g_type_class_unref (g_type_class_peek (gst_stack_trace_flags_get_type ()));
+ g_type_class_unref (g_type_class_peek (gst_promise_result_get_type ()));
gst_deinitialized = TRUE;
GST_INFO ("deinitialized GStreamer");