mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
validate: Handle setting several scenarios
The user might have scenarios specific to a particular pipeline, and the application might have several pipelines running and scenarios that apply on specific pipeline. We have to handle that valid use case.
This commit is contained in:
parent
3bd31854a8
commit
024b1762d7
1 changed files with 25 additions and 17 deletions
|
@ -184,28 +184,36 @@ static void
|
||||||
gst_validate_pipeline_monitor_create_scenarios (GstValidateBinMonitor * monitor)
|
gst_validate_pipeline_monitor_create_scenarios (GstValidateBinMonitor * monitor)
|
||||||
{
|
{
|
||||||
/* scenarios currently only make sense for pipelines */
|
/* scenarios currently only make sense for pipelines */
|
||||||
const gchar *scenario_name;
|
const gchar *scenarios_names;
|
||||||
|
gchar **scenarios;
|
||||||
|
|
||||||
if ((scenario_name = g_getenv ("GST_VALIDATE_SCENARIO"))) {
|
if ((scenarios_names = g_getenv ("GST_VALIDATE_SCENARIO"))) {
|
||||||
gchar **scenario_v = g_strsplit (scenario_name, "->", 2);
|
gint i;
|
||||||
|
|
||||||
if (scenario_v[1] && GST_VALIDATE_MONITOR_GET_OBJECT (monitor)) {
|
scenarios = g_strsplit (scenarios_names, G_SEARCHPATH_SEPARATOR_S, 0);
|
||||||
if (!g_pattern_match_simple (scenario_v[1],
|
for (i = 0; scenarios[i]; i++) {
|
||||||
GST_OBJECT_NAME (GST_VALIDATE_MONITOR_GET_OBJECT (monitor)))) {
|
gchar **scenario_v = g_strsplit (scenarios[i], "->", 2);
|
||||||
GST_INFO_OBJECT (monitor, "Not attaching to pipeline %" GST_PTR_FORMAT
|
|
||||||
" as not matching pattern %s",
|
|
||||||
GST_VALIDATE_MONITOR_GET_OBJECT (monitor), scenario_v[1]);
|
|
||||||
|
|
||||||
g_strfreev (scenario_v);
|
if (scenario_v[1] && GST_VALIDATE_MONITOR_GET_OBJECT (monitor)) {
|
||||||
return;
|
if (!g_pattern_match_simple (scenario_v[1],
|
||||||
|
GST_OBJECT_NAME (GST_VALIDATE_MONITOR_GET_OBJECT (monitor)))) {
|
||||||
|
GST_INFO_OBJECT (monitor, "Not attaching to pipeline %" GST_PTR_FORMAT
|
||||||
|
" as not matching pattern %s",
|
||||||
|
GST_VALIDATE_MONITOR_GET_OBJECT (monitor), scenario_v[1]);
|
||||||
|
|
||||||
|
g_strfreev (scenario_v);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
monitor->scenario =
|
||||||
|
gst_validate_scenario_factory_create (GST_VALIDATE_MONITOR_GET_RUNNER
|
||||||
|
(monitor),
|
||||||
|
GST_ELEMENT_CAST (GST_VALIDATE_MONITOR_GET_OBJECT (monitor)),
|
||||||
|
scenario_v[0]);
|
||||||
|
g_strfreev (scenario_v);
|
||||||
}
|
}
|
||||||
monitor->scenario =
|
|
||||||
gst_validate_scenario_factory_create (GST_VALIDATE_MONITOR_GET_RUNNER
|
g_strfreev (scenarios);
|
||||||
(monitor),
|
|
||||||
GST_ELEMENT_CAST (GST_VALIDATE_MONITOR_GET_OBJECT (monitor)),
|
|
||||||
scenario_v[0]);
|
|
||||||
g_strfreev (scenario_v);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue