diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h b/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h index 7fede688ae..f3601f7390 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-internal.h @@ -56,6 +56,7 @@ G_GNUC_INTERNAL gchar** gst_validate_scenario_get_include_paths(const gchar* rel G_GNUC_INTERNAL void _priv_validate_override_registry_deinit(void); G_GNUC_INTERNAL GstValidateReportingDetails gst_validate_runner_get_default_reporting_details (GstValidateRunner *runner); +G_GNUC_INTERNAL void gst_validate_runner_set_monitor_all_pipelines (GstValidateRunner *runner, gboolean monitor_all_pipelines); #define GST_VALIDATE_VALIDATE_TEST_SUFFIX ".validatetest" G_GNUC_INTERNAL GstValidateMonitor * gst_validate_get_monitor (GObject *object); diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-runner.c b/subprojects/gst-devtools/validate/gst/validate/gst-validate-runner.c index 7121d526fb..815b449037 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-runner.c +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-runner.c @@ -96,6 +96,8 @@ struct _GstValidateRunnerPrivate gchar **pipeline_names_strv; GList *expected_issues; + + gboolean monitor_all_pipelines; }; /* Describes the reporting level to apply to a name pattern */ @@ -154,6 +156,10 @@ gst_validate_runner_should_monitor (GstValidateRunner * self, return FALSE; } + if (self->priv->monitor_all_pipelines) { + return TRUE; + } + if (self->priv->user_created) return FALSE; @@ -975,6 +981,15 @@ gst_validate_runner_get_default_reporting_details (GstValidateRunner * runner) return runner->priv->default_level; } +void +gst_validate_runner_set_monitor_all_pipelines (GstValidateRunner * runner, + gboolean monitor_all_pipelines) +{ + g_return_if_fail (GST_IS_VALIDATE_RUNNER (runner)); + + runner->priv->monitor_all_pipelines = monitor_all_pipelines; +} + #ifdef __GST_VALIDATE_PLUGIN static gboolean plugin_init (GstPlugin * plugin) diff --git a/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c b/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c index efdca8ffae..372303fb99 100644 --- a/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c +++ b/subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c @@ -194,7 +194,6 @@ typedef struct struct _GstValidateScenarioPrivate { GstBus *bus; - GstValidateRunner *runner; gboolean execute_on_idle; GMutex lock; @@ -5490,6 +5489,18 @@ gst_validate_scenario_load_structures (GstValidateScenario * scenario, &priv->max_latency); gst_structure_get_int (structure, "max-dropped", &priv->max_dropped); + gboolean monitor_all_pipelines = FALSE; + if (gst_structure_get_boolean (structure, "monitor-all-pipelines", + &monitor_all_pipelines) && monitor_all_pipelines) { + GstValidateRunner *runner = + gst_validate_reporter_get_runner (GST_VALIDATE_REPORTER (scenario)); + + g_assert (runner); + gst_validate_runner_set_monitor_all_pipelines (runner, TRUE); + gst_object_unref (runner); + + } + scenario->description = gst_structure_copy (structure); continue;