#include <gst/gst.h>
#include <gio/gio.h>
+#include "../../validate/validate.h"
#include "../../validate/gst-validate-scenario.h"
#include "../../validate/gst-validate-utils.h"
static gboolean
gst_validate_gapplication_init (GstPlugin * plugin)
{
- GList *structures, *tmp;
- const gchar *appname = NULL, *config = g_getenv ("GST_VALIDATE_CONFIG");
+ GList *config, *tmp;
+ const gchar *appname;
- if (!config)
- return TRUE;
-
- structures = gst_validate_utils_structs_parse_from_filename (config);
+ config = gst_validate_plugin_get_config (plugin);
- if (!structures)
+ if (!config)
return TRUE;
- for (tmp = structures; tmp; tmp = tmp->next) {
- if (gst_structure_has_name (tmp->data, "gapplication"))
- appname = gst_structure_get_string (tmp->data, "application-name");
+ for (tmp = config; tmp; tmp = tmp->next) {
+ appname = gst_structure_get_string (tmp->data, "application-name");
}
- g_list_free_full (structures, (GDestroyNotify) gst_structure_free);
- if (appname && g_strcmp0 (g_get_prgname (), appname))
+ if (appname && g_strcmp0 (g_get_prgname (), appname)) {
+ GST_INFO_OBJECT (plugin, "App: %s is not %s", g_get_prgname (), appname);
return TRUE;
+ }
gst_validate_register_action_type_dynamic (plugin, "stop",
GST_RANK_PRIMARY, _execute_stop, NULL,
#include <unistd.h>
#include "validate.h"
+#include "gst-validate-utils.h"
#include "gst-validate-internal.h"
#ifdef G_OS_WIN32
return registry;
}
+#define GST_VALIDATE_PLUGIN_CONFIG "gst-validate-plugin-config"
+
+static void
+_free_plugin_config (gpointer data)
+{
+ g_list_free_full (data, (GDestroyNotify) gst_structure_free);
+}
+
+GList *
+gst_validate_plugin_get_config (GstPlugin * plugin)
+{
+ GList *structures = NULL, *tmp, *plugin_conf = NULL;
+ const gchar *config = g_getenv ("GST_VALIDATE_CONFIG");
+
+ if ((plugin_conf =
+ g_object_get_data (G_OBJECT (plugin), GST_VALIDATE_PLUGIN_CONFIG)))
+ return plugin_conf;
+
+ if (config)
+ structures = gst_validate_utils_structs_parse_from_filename (config);
+
+ for (tmp = structures; tmp; tmp = tmp->next) {
+ if (gst_structure_has_name (tmp->data, gst_plugin_get_name (plugin)))
+ plugin_conf = g_list_append (plugin_conf, tmp->data);
+ }
+ g_object_set_data_full (G_OBJECT (plugin), GST_VALIDATE_PLUGIN_CONFIG,
+ plugin_conf, _free_plugin_config);
+
+ return plugin_conf;
+}
+
static void
gst_validate_init_plugins (void)
{