Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer-devtools for 
openSUSE:Factory checked in at 2026-09-11 18:01:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-devtools (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-devtools.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-devtools"

Fri Sep 11 18:01:26 2026 rev:53 rq:1376926 version:1.28.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-devtools/gstreamer-devtools.changes    
2026-08-06 16:28:14.517072619 +0200
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-devtools.new.1265/gstreamer-devtools.changes
  2026-09-11 18:04:51.156665531 +0200
@@ -1,0 +2,6 @@
+Tue Sep  8 07:22:00 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.28.7:
+  + validate: Use a single value type in configs lists
+
+-------------------------------------------------------------------

Old:
----
  gst-devtools-1.28.6.obscpio

New:
----
  gst-devtools-1.28.7.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer-devtools.spec ++++++
--- /var/tmp/diff_new_pack.NU3UEr/_old  2026-09-11 18:04:52.012701318 +0200
+++ /var/tmp/diff_new_pack.NU3UEr/_new  2026-09-11 18:04:52.014701402 +0200
@@ -22,7 +22,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           gstreamer-devtools
-Version:        1.28.6
+Version:        1.28.7
 Release:        0
 Summary:        Development and debugging tools for GStreamer
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.NU3UEr/_old  2026-09-11 18:04:52.045702698 +0200
+++ /var/tmp/diff_new_pack.NU3UEr/_new  2026-09-11 18:04:52.048702823 +0200
@@ -5,7 +5,7 @@
     <param 
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
     <param name="subdir">subprojects/gst-devtools</param>
     <param name="filename">gst-devtools</param>
-    <param name="revision">1.28.6</param>
+    <param name="revision">1.28.7</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ gst-devtools-1.28.6.obscpio -> gst-devtools-1.28.7.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-devtools-1.28.6/docs/fakesrc.simple.validatetest 
new/gst-devtools-1.28.7/docs/fakesrc.simple.validatetest
--- old/gst-devtools-1.28.6/docs/fakesrc.simple.validatetest    2026-08-05 
13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/docs/fakesrc.simple.validatetest    2026-09-07 
21:11:13.000000000 +0200
@@ -1,8 +1,8 @@
 meta,
-    args = {
-         "fakesrc num-buffers=1 ! fakesink name=sink",
+    args={
+        "fakesrc num-buffers=1 ! fakesink name=sink",
     },
-    configs = {
-       "$(validateflow), pad=sink:sink, buffers-checksum=true",
+    configs={
+        [validateflow, pad=sink:sink, buffers-checksum=true],
     }
-# The validate tool will simply play the pipeline until EOS is reached.
\ No newline at end of file
+# The validate tool will simply play the pipeline until EOS is reached.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-devtools-1.28.6/docs/gst-validate-flow.md 
new/gst-devtools-1.28.7/docs/gst-validate-flow.md
--- old/gst-devtools-1.28.6/docs/gst-validate-flow.md   2026-08-05 
13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/docs/gst-validate-flow.md   2026-09-07 
21:11:13.000000000 +0200
@@ -76,7 +76,7 @@
          "appsrc ! qtdemux ! fakesink async=false",
     },
     configs = {
-       "$(validateflow), pad=fakesink0:sink, record-buffers=false",
+       [validateflow, pad=fakesink0:sink, record-buffers=false],
     }
 
 # Scenario action types
@@ -91,14 +91,7 @@
 This example shows the elements of a typical validate flow test (a pipeline, a
 config and a scenario). Some actions typically used together with validateflow
 can also be seen. Notice variable interpolation is used to fill absolute paths
-for media files in the scenario (`$(test_dir)`). In the configuration,
-`$(validateflow)` is expanded to something like this, containing proper paths
-for expectations and actual results (these values are interpolated from the
-`.validatetest` file location):
-
-``` ini
-validateflow, 
expectations-dir="/validate/test/file/path/validateqtdemux_change_edit_list/flow-expectations/",
 
actual-results-dir="$(GST_VALIDATE_LOGSDIR)/logs/validate/launch_pipeline/qtdemux_change_edit_list"
-```
+for media files in the scenario (`$(test_dir)`).
 
 The resulting log looks like this:
 
@@ -157,16 +150,12 @@
   for backward compatibility reasons, upstream events are not logged by 
default,
   and you must specify the ones you want to be logged.
 * `expectations-dir`: Path to the directory where the expectations will be
-   written if they don't exist, relative to the current working directory. By
-   default the current working directory is used, but this setting is usually
-   set automatically as part of the `%(validateflow)s` expansion to a correct
-   path like `~/gst-validate/gst-integration-testsuites/flow-expectations/<test
-   name>`.
+   written if they don't exist. Automatically derived from the test file path
+   as `<test_dir>/<test_name>/flow-expectations/`. Can be overridden 
explicitly.
 * `actual-results-dir`: Path to the directory where the events will be 
recorded.
-   The expectation file will be compared to this. By default the current 
working
-   directory is used, but this setting is usually set automatically as part of
-   the `%(validateflow)s` expansion to the test log directory, i.e.
-   `~/gst-validate/logs/validate/launch_pipeline/<test name>`.
+   The expectation file will be compared to this. Automatically derived as
+   `$GST_VALIDATE_LOGSDIR/<test_name_dir>/` (where dots in the test name are
+   replaced by directory separators). Can be overridden explicitly.
 * `generate-expectations`: Default: unset. When set to `true` the expectation
    file will be written and no testing will be done and if set to `false`, the
    expectation file will be required. If a validateflow config is used without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-devtools-1.28.6/docs/gst-validate-test-file.md 
new/gst-devtools-1.28.7/docs/gst-validate-test-file.md
--- old/gst-devtools-1.28.6/docs/gst-validate-test-file.md      2026-08-05 
13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/docs/gst-validate-test-file.md      2026-09-07 
21:11:13.000000000 +0200
@@ -50,10 +50,11 @@
 * `$(test_name_dir)`: The name of the test directory (test_name with folder
                       separator instead of `.`).
 
-* `$(validateflow)`: The validateflow structure name with the default/right
-                     values for the `expectations-dir` and `actual-results-dir`
-                     fields. See [validateflow](gst-validate-flow.md) for more
-                     information.
+* `$(validateflow)`: Legacy variable that expands to the validateflow structure
+                     name with `expectations-dir` and `actual-results-dir` set.
+                     Not needed when using the nested structure syntax (e.g.
+                     `[validateflow, pad=sink:sink]`) since directories are
+                     auto-derived from the test file path.
 
 * `$(videosink)`: The GStreamer videosink to use if the test can work with
                   different sinks for the video. It allows the tool to use
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-devtools-1.28.6/gst-devtools.doap 
new/gst-devtools-1.28.7/gst-devtools.doap
--- old/gst-devtools-1.28.6/gst-devtools.doap   2026-08-05 13:59:39.000000000 
+0200
+++ new/gst-devtools-1.28.7/gst-devtools.doap   2026-09-07 21:11:13.000000000 
+0200
@@ -55,6 +55,16 @@
 
  <release>
   <Version>
+   <revision>1.28.7</revision>
+   <branch>1.28</branch>
+   <name></name>
+   <created>2026-09-07</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.28.7.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.28.6</revision>
    <branch>1.28</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-devtools-1.28.6/meson.build 
new/gst-devtools-1.28.7/meson.build
--- old/gst-devtools-1.28.6/meson.build 2026-08-05 13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/meson.build 2026-09-07 21:11:13.000000000 +0200
@@ -1,5 +1,5 @@
 project('gst-devtools', 'c',
-  version : '1.28.6',
+  version : '1.28.7',
   meson_version : '>= 1.4',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/gst/validate/flow/gstvalidateflow.c 
new/gst-devtools-1.28.7/validate/gst/validate/flow/gstvalidateflow.c
--- old/gst-devtools-1.28.6/validate/gst/validate/flow/gstvalidateflow.c        
2026-08-05 13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/validate/gst/validate/flow/gstvalidateflow.c        
2026-09-07 21:11:13.000000000 +0200
@@ -342,18 +342,66 @@
 
   /* expectations-dir: Path to the directory where the expectations will be
    * written if they don't exist, relative to the current working directory.
-   * By default the current working directory is used. */
+   * By default, derived from the test file path (__filename__) if available,
+   * otherwise the current working directory is used. */
   flow->expectations_dir =
       g_strdup (gst_structure_get_string (config, "expectations-dir"));
-  if (!flow->expectations_dir)
-    flow->expectations_dir = g_strdup (".");
 
   /* actual-results-dir: Path to the directory where the events will be
-   * recorded. The expectation file will be compared to this. */
+   * recorded. The expectation file will be compared to this. By default,
+   * derived from the test file path (__filename__) if available, otherwise
+   * the current working directory is used. */
   flow->actual_results_dir =
       g_strdup (gst_structure_get_string (config, "actual-results-dir"));
-  if (!flow->actual_results_dir)
-    flow->actual_results_dir = g_strdup (".");
+
+  /* Auto-derive directories from __filename__ when not explicitly set */
+  if (!flow->expectations_dir || !flow->actual_results_dir) {
+    const gchar *filename = gst_structure_get_string (config, "__filename__");
+
+    if (filename) {
+      gchar *config_dir = g_path_get_dirname (filename);
+      gchar *config_fname = g_path_get_basename (filename);
+      gchar *config_name = g_strdup (config_fname);
+      gchar *dot;
+
+      /* Strip .validatetest extension */
+      dot = strrchr (config_name, '.');
+      if (dot && dot > config_name)
+        *dot = '\0';
+
+      if (!flow->expectations_dir)
+        flow->expectations_dir =
+            g_build_path ("/", config_dir, config_name, "flow-expectations",
+            NULL);
+
+      if (!flow->actual_results_dir) {
+        const gchar *logsdir = g_getenv ("GST_VALIDATE_LOGSDIR");
+        gchar *config_name_dir, *t;
+
+        if (!logsdir)
+          logsdir = g_get_tmp_dir ();
+
+        config_name_dir = g_strdup (config_name);
+        for (t = config_name_dir; *t != '\0'; t++) {
+          if (*t == '.')
+            *t = '/';
+        }
+
+        flow->actual_results_dir =
+            g_build_path ("/", logsdir, config_name_dir, NULL);
+        g_free (config_name_dir);
+      }
+
+      g_free (config_dir);
+      g_free (config_fname);
+      g_free (config_name);
+    } else {
+      if (!flow->expectations_dir)
+        flow->expectations_dir = g_strdup (".");
+      if (!flow->actual_results_dir)
+        flow->actual_results_dir = g_strdup (".");
+    }
+  }
 
   {
     gchar *pad_name_safe = make_safe_file_name (flow->pad_name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/appsink_forward.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/appsink_forward.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/appsink_forward.validatetest
  2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/appsink_forward.validatetest
  2026-09-07 21:11:13.000000000 +0200
@@ -1,5 +1,5 @@
 set-globals,
-  appsrc_props="handle-segment-change=true \
+    appsrc_props="handle-segment-change=true \
                 automatic-eos=false \
                 min-latency=0 \
                 max-latency=-1 \
@@ -11,39 +11,45 @@
                 leaky-type=downstream"
 
 meta,
-    args = {
-      "appsrc name=src $(appsrc_props) ! videoconvert ! $(videosink) 
name=sink",
+    args={
+        "appsrc name=src $(appsrc_props) ! videoconvert ! $(videosink) 
name=sink",
     },
-    configs = {
-       "$(validateflow), pad=source-sink:sink, buffers-checksum=as-id, 
ignored-event-types={ tag, stream-start }",
-       "$(validateflow), pad=selector-sink:sink, buffers-checksum=as-id, 
ignored-event-types={ tag, stream-start }",
+    configs={
+        [validateflow,
+            pad=source-sink:sink,
+            buffers-checksum=as-id,
+            ignored-event-types={
+                tag, stream-start,
+            }],
+        [validateflow,
+            pad=selector-sink:sink,
+            buffers-checksum=as-id,
+            ignored-event-types={
+                tag, stream-start,
+            }],
     },
     handles-states=true,
     ignore-eos=true
 
 # Source pipeline
 create-sub-pipeline,
-  name=source,
-  desc="videotestsrc num-buffers=5 name=src ! 
video/x-raw,framerate=30/1,format=I420,width=320,height=240 ! timeoverlay ! 
appsink name=source-sink sync=true max-buffers=10 drop=true",
-  scenario={
-      [meta],
+    name=source,
+    desc="videotestsrc num-buffers=5 name=src ! 
video/x-raw,framerate=30/1,format=I420,width=320,height=240 ! timeoverlay ! 
appsink name=source-sink sync=true max-buffers=10 drop=true",
+    scenario={
+        [meta],
     }
 
 # "selector" pipeline
 create-sub-pipeline,
-  name=selector,
-  desc="appsrc name=selector-src1 $(appsrc_props) ! input-selector ! appsink 
name=selector-sink sync=true max-buffers=10 drop=true",
-  scenario={
-      [meta],
+    name=selector,
+    desc="appsrc name=selector-src1 $(appsrc_props) ! input-selector ! appsink 
name=selector-sink sync=true max-buffers=10 drop=true",
+    scenario={
+        [meta],
     }
 
-appsink-forward-to-appsrc,
-  sink=source/source-sink,
-  src=selector/selector-src1
-
-appsink-forward-to-appsrc,
-  sink=selector/selector-sink,
-  src=src
+appsink-forward-to-appsrc, sink=source/source-sink, src=selector/selector-src1
+
+appsink-forward-to-appsrc, sink=selector/selector-sink, src=src
 
 play
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/check_set_prop_never_called_error.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/check_set_prop_never_called_error.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/check_set_prop_never_called_error.validatetest
        2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/check_set_prop_never_called_error.validatetest
        2026-09-07 21:11:13.000000000 +0200
@@ -1,9 +1,13 @@
 meta,
-    args = {
-       "fakesrc num-buffers=1 ! fakesink",
+    args={
+        "fakesrc num-buffers=1 ! fakesink",
     },
-    expected-issues = {
-        "expected-issue, issue-id=scenario::not-ended",
+    expected-issues={
+        [expected-issue,
+            issue-id=scenario::not-ended],
     }
 
-set-property, target-element-factory-name=capsfilter, property-name=caps, 
property-value="video/x-raw,framerate=30/1,format=I420"
\ No newline at end of file
+set-property,
+    target-element-factory-name=capsfilter,
+    property-name=caps,
+    property-value="video/x-raw,framerate=30/1,format=I420"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/check_set_props_and_time_props.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/check_set_props_and_time_props.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/check_set_props_and_time_props.validatetest
   2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/check_set_props_and_time_props.validatetest
   2026-09-07 21:11:13.000000000 +0200
@@ -1,11 +1,14 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc pattern=blue ! compositor name=c ! 
video/x-raw,width=100,height=100,framerate=10/1 ! $(videosink) videotestsrc 
pattern=green ! c.",
     }
 
 # Start with the green stream on the top left corner and the blue on in the 
bottom right
-set-timed-value-properties, timestamp=0.0, 
source-type=GstTriggerControlSource, binding-type=direct-absolute,
+set-timed-value-properties,
+    timestamp=0.0,
+    source-type=GstTriggerControlSource,
+    binding-type=direct-absolute,
     c.sink_0::xpos=50,
     c.sink_0::ypos=50,
     c.sink_0::width=50,
@@ -16,7 +19,10 @@
     c.sink_1::height=50
 
 # And invert it after 1 second of playback
-set-timed-value-properties, timestamp=1.0, 
source-type=GstTriggerControlSource, binding-type=direct-absolute,
+set-timed-value-properties,
+    timestamp=1.0,
+    source-type=GstTriggerControlSource,
+    binding-type=direct-absolute,
     c.sink_0::xpos=0,
     c.sink_0::ypos=0,
     c.sink_1::xpos=50,
@@ -46,9 +52,19 @@
     c.sink_1::xpos=50,
     c.sink_1::ypos=50
 
-set-properties, c.sink_0::xpos=50, c.sink_0::ypos=50, c.sink_1::xpos=0, 
c.sink_1::ypos=0
-check-properties, c.sink_0::xpos=50, c.sink_0::ypos=50, c.sink_1::xpos=0, 
c.sink_1::ypos=0
+set-properties,
+    c.sink_0::xpos=50,
+    c.sink_0::ypos=50,
+    c.sink_1::xpos=0,
+    c.sink_1::ypos=0
+check-properties,
+    c.sink_0::xpos=50,
+    c.sink_0::ypos=50,
+    c.sink_1::xpos=0,
+    c.sink_1::ypos=0
 
-set-properties, c::latency=50.0
-check-properties, c::latency=50.0
-stop
\ No newline at end of file
+set-properties,
+    c::latency=50.0
+check-properties,
+    c::latency=50.0
+stop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach.validatetest 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach.validatetest
--- old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach.validatetest  
2026-08-05 13:59:39.000000000 +0200
+++ new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach.validatetest  
2026-09-07 21:11:13.000000000 +0200
@@ -1,47 +1,48 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc pattern=ball animation-mode=frames num-buffers=30 ! 
video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true",
     },
-    expected-issues = {
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Pipeline position doesn.t match expectations got 
0:00:00.100000000 instead of.*",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Pipeline position doesn.t match expectations got 
0:00:00.200000000 instead of.*",
-        ],
+    expected-issues={
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Pipeline position doesn.t match expectations got 
0:00:00.100000000 instead of.*"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Pipeline position doesn.t match expectations got 
0:00:00.200000000 instead of.*"],
     }
 
 pause;
 
-foreach, n=[0, 2],
-    actions = {
+foreach,
+    n=[0, 2],
+    actions={
         [seek, start="$(position)+0.1", flags="accurate+flush"],
-        [check-position, expected-position="expr($(n)*0.01)"], # expected to 
fail
+        [check-position, expected-position="expr($(n)*0.01)"],  # expected to 
fail
     }
 
 priv_check-action-type-calls, type=seek, n=2
 priv_check-action-type-calls, type=check-position, n=2
 
-foreach, n=[0, 6], actions = {
-    [seek, start="$(position)+0.1", flags="accurate+flush"],
-    [check-position, expected-position="expr((3 + $(n)) * 0.1)"],
-}
+foreach,
+    n=[0, 6],
+    actions={
+        [seek, start="$(position)+0.1", flags="accurate+flush"],
+        [check-position, expected-position="expr((3 + $(n)) * 0.1)"],
+    }
 
 priv_check-action-type-calls, type=seek, n=8
 priv_check-action-type-calls, type=check-position, n=8
 check-position, expected-position=0.8
 
-foreach, n=[9, 11], actions = {
-    [seek, start="$(position)+0.1", flags="accurate+flush"],
-    [check-position, expected-position="expr($(n)*0.1)"],
-}
+foreach,
+    n=[9, 11],
+    actions={
+        [seek, start="$(position)+0.1", flags="accurate+flush"],
+        [check-position, expected-position="expr($(n)*0.1)"],
+    }
 priv_check-action-type-calls, type=seek, n=10
 # We called it once manually
 priv_check-action-type-calls, type=check-position, n=11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_array.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_array.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_array.validatetest
    2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_array.validatetest
    2026-09-07 21:11:13.000000000 +0200
@@ -1,33 +1,39 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc pattern=ball name=s ! fakesink",
     }
 
-foreach, pattern=<green, blue>,
-    actions = {
-        [set-properties, s::pattern="$(pattern)"],
+foreach,
+    pattern=<green, blue>,
+    actions={
+        [set-properties,
+            s::pattern="$(pattern)"],
     }
 
 priv_check-action-type-calls, type=set-properties, n=2
 
-check-properties, s::pattern="Blue"
+check-properties,
+    s::pattern="Blue"
 
-foreach, pattern=<
-            # We can also pass int values (which works for enums)
-            1,  3, 5, # green
-        >,
-    actions = {
-        [set-properties, s::pattern="$(pattern)"],
+foreach,
+    pattern=<1, 3, 5>,
+    actions={
+        [set-properties,
+            s::pattern="$(pattern)"],
     }
 
 priv_check-action-type-calls, type=set-properties, n=5
-check-properties, s::pattern="Green"
+check-properties,
+    s::pattern="Green"
 
-foreach, pattern=<blue, white, black>,
-    actions = {
-        [set-properties, s::pattern="$(pattern)"],
+foreach,
+    pattern=<blue, white, black>,
+    actions={
+        [set-properties,
+            s::pattern="$(pattern)"],
     }
 priv_check-action-type-calls, type=set-properties, n=8
-check-properties, s::pattern="100\%\ Black"
+check-properties,
+    s::pattern="100\%\ Black"
 stop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_deep.validatetest 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_deep.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_deep.validatetest 
    2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_deep.validatetest 
    2026-09-07 21:11:13.000000000 +0200
@@ -1,51 +1,40 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc pattern=ball animation-mode=frames num-buffers=30 ! 
video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true",
     },
-    expected-issues = {
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Pipeline position doesn.t match expectations got 
0:00:00.100000000 instead of.*",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Pipeline position doesn.t match expectations got 
0:00:00.200000000 instead of.*",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Expected subaction level 4, got 3",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Expected subaction level 4, got 3",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Expected subaction level 5, got 4",
-        ],
-        [
-            expected-issue,
-                level=critical,
-                issue-id=scenario::execution-error,
-                details="Expected subaction level 5, got 4",
-        ],
+    expected-issues={
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Pipeline position doesn.t match expectations got 
0:00:00.100000000 instead of.*"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Pipeline position doesn.t match expectations got 
0:00:00.200000000 instead of.*"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Expected subaction level 4, got 3"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Expected subaction level 4, got 3"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Expected subaction level 5, got 4"],
+        [expected-issue,
+            level=critical,
+            issue-id=scenario::execution-error,
+            details="Expected subaction level 5, got 4"],
     }
 
 pause;
 
 
-foreach, n=[0, 2],
+foreach,
+    n=[0, 2],
     actions={
         [seek, start="$(position)+0.1", flags="accurate+flush"],
         [check-position, expected-position="expr($(n)*0.01)"],  # Expected 
failling subaction!
@@ -54,27 +43,28 @@
 priv_check-action-type-calls, type=seek, n=2
 priv_check-action-type-calls, type=check-position, n=2
 
-foreach, i=[0, 2],
+foreach,
+    i=[0, 2],
     actions={
         [seek, start="$(position)+0.1", flags="accurate+flush"],
         [priv_check-subaction-level, level=1],
-        [foreach, j=[0, 1],
+        [foreach,
+            j=[0, 1],
             actions={
                 [priv_check-subaction-level, level=2],
-                [foreach, k=[0, 1],
+                [foreach,
+                    k=[0, 1],
                     actions={
                         [priv_check-subaction-level, level=4],  # Failling... 
twice
                         [priv_check-subaction-level, level=3],
-                        [foreach, l=[0, 1],
+                        [foreach,
+                            l=[0, 1],
                             actions={
                                 [priv_check-subaction-level, level=4],
-                                [priv_check-subaction-level, level=5], # 
Failling... twice
-                            },
-                        ],
-                    },
-                ],
-            },
-        ],
+                                [priv_check-subaction-level, level=5],  # 
Failling... twice
+                            }],
+                    }],
+            }],
     }
 priv_check-action-type-calls, type=seek, n=4
 stop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_repeat.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_repeat.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/foreach_repeat.validatetest
   2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/foreach_repeat.validatetest
   2026-09-07 21:11:13.000000000 +0200
@@ -1,13 +1,14 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc name=src pattern=ball animation-mode=frames 
num-buffers=30 ! video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true",
     }
 
 pause;
 
-foreach, repeat="max(1, 2)",
-    actions = {
+foreach,
+    repeat="max(1, 2)",
+    actions={
         "seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
         "check-position, expected-position=\"expr((1+$(repeat))*0.1)\"",
     }
@@ -18,12 +19,13 @@
 foreach,
     repeat=2,
     pattern=[0, 10, 5],
-    actions = {
+    actions={
         "set-properties, src::horizontal-speed=\"$(pattern)\"",
         "check-properties, src::horizontal-speed=\"$(pattern)\"",
     }
 
-check-properties, src::horizontal-speed=5
+check-properties,
+    src::horizontal-speed=5
 priv_check-action-type-calls, type=set-properties, n=4
 priv_check-action-type-calls, type=check-properties, n=5
 priv_check-action-type-calls, type=seek, n=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/multipipe.validatetest 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/multipipe.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/multipipe.validatetest    
    2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/multipipe.validatetest    
    2026-09-07 21:11:13.000000000 +0200
@@ -1,5 +1,5 @@
 set-globals,
-  appsrc_props="handle-segment-change=true \
+    appsrc_props="handle-segment-change=true \
                 automatic-eos=false \
                 min-latency=0 \
                 max-latency=-1 \
@@ -11,17 +11,17 @@
                 leaky-type=downstream"
 
 meta,
-    args = {
-      "appsrc name=src $(appsrc_props) ! videoconvert ! $(videosink) 
name=sink",
+    args={
+        "appsrc name=src $(appsrc_props) ! videoconvert ! $(videosink) 
name=sink",
     },
     handles-states=true
 
 # Start a new pipeline with an `appsink`
 create-sub-pipeline,
-  name=subpipeline,
-  desc="videotestsrc ! timeoverlay ! appsink name=appsink sync=true 
max-buffers=10 drop=true",
-  scenario={
-      [meta, ignore-eos=true],
+    name=subpipeline,
+    desc="videotestsrc ! timeoverlay ! appsink name=appsink sync=true 
max-buffers=10 drop=true",
+    scenario={
+        [meta, ignore-eos=true],
     }
 
 # Pull sample from the sub pipeline and push it into the main pipeline appsrc
@@ -31,37 +31,27 @@
 play
 
 # Seek on the sub pipeline
-run-on-sub-pipeline,
-  pipeline-name=subpipeline,
-  action=[seek, flags=accurate+flush, start=5.0, stop=15.0]
+run-on-sub-pipeline, pipeline-name=subpipeline, action=[seek, 
flags=accurate+flush, start=5.0, stop=15.0]
 
 # Then forward 10 buffers from sub pipeline to main pipeline
 foreach,
-  i=[0, 10],
-  actions = {
-    [
-      appsrc-push, target-element-name=src, from-appsink="subpipeline/appsink",
-    ],
-  }
+    i=[0, 10],
+    actions={
+        [appsrc-push, target-element-name=src, 
from-appsink="subpipeline/appsink"],
+    }
 
 # And seek the sub pipeline again
-run-on-sub-pipeline,
-  pipeline-name=subpipeline,
-  action=[seek, flags=accurate+flush, start=1.0, stop=5.0]
+run-on-sub-pipeline, pipeline-name=subpipeline, action=[seek, 
flags=accurate+flush, start=1.0, stop=5.0]
 
 # And forward 10 more buffers from sub pipeline to main pipeline
 foreach,
-  i=[0, 10],
-  actions = {
-    [
-      appsrc-push, target-element-name=src, from-appsink="subpipeline/appsink",
-    ],
-  }
+    i=[0, 10],
+    actions={
+        [appsrc-push, target-element-name=src, 
from-appsink="subpipeline/appsink"],
+    }
 
 # Stop the sub pipeline
-run-on-sub-pipeline,
-  pipeline-name=subpipeline,
-  action=[stop]
+run-on-sub-pipeline, pipeline-name=subpipeline, action=[stop]
 
 # And finish everything by marking main pipeline as EOS
 appsrc-eos, target-element-name=src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/not_negotiated.accept_caps_failure.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/not_negotiated.accept_caps_failure.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/not_negotiated.accept_caps_failure.validatetest
       2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/not_negotiated.accept_caps_failure.validatetest
       2026-09-07 21:11:13.000000000 +0200
@@ -1,7 +1,10 @@
 meta,
-    args = {
+    args={
         "audiotestsrc ! capsfilter 
caps=\"audio/x-raw,channels=2,channel-mask=(bitmask)0x67\" ! audioconvert ! 
capsfilter caps=\"audio/x-raw,channels=6,channel-mask=(bitmask)0x32\" 
name=capsfilter ! fakesink",
     },
-    expected-issues = {
-        "expected-issue, level=critical, summary=\"a NOT NEGOTIATED message 
has been posted on the bus.\", details=\".*Caps negotiation failed at 
pad.*capsfilter:sink.*as it refused caps:.*\"",
+    expected-issues={
+        [expected-issue,
+            level=critical,
+            summary="a NOT NEGOTIATED message has been posted on the bus.",
+            details=".*Caps negotiation failed at pad.*capsfilter:sink.*as it 
refused caps:.*"],
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/overrides.validatetest 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/overrides.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/overrides.validatetest    
    2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/overrides.validatetest    
    2026-09-07 21:11:13.000000000 +0200
@@ -1,13 +1,18 @@
 meta,
-    args = {
+    args={
         "videotestsrc ! capsfilter name=cf ! fakesink",
     },
-    overrides = {
-        [change-severity, issue-id=runtime::not-negotiated, 
new-severity=warning],
-        [change-severity, issue-id=scenario::not-ended, new-severity=warning],
+    overrides={
+        [change-severity,
+            issue-id=runtime::not-negotiated,
+            new-severity=warning],
+        [change-severity,
+            issue-id=scenario::not-ended,
+            new-severity=warning],
     }
 
-set-properties, cf::caps="audio/x-raw"
+set-properties,
+    cf::caps="audio/x-raw"
 
 wait, message-type=error
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/run_command_with_envvars.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/run_command_with_envvars.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/run_command_with_envvars.validatetest
 2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/run_command_with_envvars.validatetest
 2026-09-07 21:11:13.000000000 +0200
@@ -1,5 +1,5 @@
 meta,
-    args = {
+    args={
         "videotestsrc ! fakesink sync=true",
     },
     handles-states=true,
@@ -9,9 +9,6 @@
     argv={
         python3, -c, "import os; assert os.environ['ENVVAR_CHECK'] == 'set'",
     },
-    env=[
-        vars,
-            ENVVAR_CHECK="set",
-    ]
+    env=[vars, ENVVAR_CHECK="set"]
 
 stop
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/simple_interlaced_action.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/simple_interlaced_action.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/simple_interlaced_action.validatetest
 2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/simple_interlaced_action.validatetest
 2026-09-07 21:11:13.000000000 +0200
@@ -1,6 +1,6 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "appsrc name=src ! typefind ! fakesink",
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/simple_repeat.validatetest
 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/simple_repeat.validatetest
--- 
old/gst-devtools-1.28.6/validate/tests/launcher_tests/simple_repeat.validatetest
    2026-08-05 13:59:39.000000000 +0200
+++ 
new/gst-devtools-1.28.7/validate/tests/launcher_tests/simple_repeat.validatetest
    2026-09-07 21:11:13.000000000 +0200
@@ -1,10 +1,10 @@
 meta,
     handles-states=true,
-    args = {
+    args={
         "videotestsrc pattern=ball animation-mode=frames num-buffers=30 ! 
video/x-raw,framerate=10/1 ! $(videosink) name=sink sync=true",
     },
-    configs = {
-       "$(validateflow), pad=sink:sink, buffers-checksum=true",
+    configs={
+        [validateflow, pad=sink:sink, buffers-checksum=true],
     }
 
 pause;
@@ -12,4 +12,4 @@
 priv_check-action-type-calls, type=seek, n=10
 check-position, expected-position=1.0
 priv_check-action-type-calls, type=check-position, n=1
-stop
\ No newline at end of file
+stop

++++++ gst-devtools.obsinfo ++++++
--- /var/tmp/diff_new_pack.NU3UEr/_old  2026-09-11 18:04:52.447719504 +0200
+++ /var/tmp/diff_new_pack.NU3UEr/_new  2026-09-11 18:04:52.449719588 +0200
@@ -1,5 +1,5 @@
 name: gst-devtools
-version: 1.28.6
-mtime: 1785931179
-commit: 2d3e05cbdad68e47d645f548899b432dc9fb4473
+version: 1.28.7
+mtime: 1788808273
+commit: 070125524a8422e29d3b69a372ed4f62fd343ffa
 

Reply via email to