g_list_free (structures);
}
+static GList *
+get_structures_from_array (GstStructure * structure, const gchar * fieldname)
+{
+ const GValue *value;
+ GList *res = NULL;
+ guint i, size;
+
+ value = gst_structure_get_value (structure, fieldname);
+ if (!value)
+ return NULL;
+
+ if (GST_VALUE_HOLDS_STRUCTURE (value)) {
+ return g_list_append (res,
+ gst_structure_copy (gst_value_get_structure (value)));
+ }
+
+ if (!GST_VALUE_HOLDS_LIST (value)) {
+ return NULL;
+ }
+
+ size = gst_value_list_get_size (value);
+ for (i = 0; i < size; i++) {
+ const GValue *v1 = gst_value_list_get_value (value, i);
+
+ if (!GST_VALUE_HOLDS_STRUCTURE (v1))
+ break;
+
+ res =
+ g_list_append (res, gst_structure_copy (gst_value_get_structure (v1)));
+ }
+
+
+ return res;
+}
+
static GList *
get_structures_from_array_in_meta (const gchar * fieldname)
{
if (!meta)
return NULL;
+ res = get_structures_from_array (meta, fieldname);
+ if (res)
+ return res;
+
gst_structure_get (meta,
"__lineno__", G_TYPE_INT, ¤t_lineno,
"__debug__", G_TYPE_STRING, &debug,
"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="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 = {
- "seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
- "check-position, expected-position=\"expr($(n)*0.01)\"", # expected to fail
+ [seek, start="$(position)+0.1", flags="accurate+flush"],
+ [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
"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-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],
- actions = {
- "seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
- "check-position, expected-position=\"expr($(n)*0.01)\"", # Expected failling subaction!
+ actions={
+ [seek, start="$(position)+0.1", flags="accurate+flush"],
+ [check-position, expected-position="expr($(n)*0.01)"], # Expected failling subaction!
}
priv_check-action-type-calls, type=seek, n=2
priv_check-action-type-calls, type=check-position, n=2
-foreach, n=[0, 2],
- actions = {
- "seek, start=\"$(position)+0.1\", flags=\"accurate+flush\"",
- "priv_check-subaction-level, level=1",
- "foreach, n=[0, 1],
+foreach, i=[0, 2],
+ actions={
+ [seek, start="$(position)+0.1", flags="accurate+flush"],
+ [priv_check-subaction-level, level=1],
+ [foreach, j=[0, 1],
actions={
- \"priv_check-subaction-level, level=2\",
- \"foreach, j=[0, 1], actions={
- \\\"priv_check-subaction-level, level=4\\\", # Failling... twice
- \\\"priv_check-subaction-level, level=3\\\",
- \\\"foreach, j=[0, 1], actions={
- \\\\\\\"priv_check-subaction-level, level=4\\\\\\\",
- \\\\\\\"priv_check-subaction-level, level=5\\\\\\\", # Failling... twice
- }\\\",
- }\",
- }",
+ [priv_check-subaction-level, level=2],
+ [foreach, k=[0, 1],
+ actions={
+ [priv_check-subaction-level, level=4], # Failling... twice
+ [priv_check-subaction-level, level=3],
+ [foreach, l=[0, 1],
+ actions={
+ [priv_check-subaction-level, level=4],
+ [priv_check-subaction-level, level=5], # Failling... twice
+ },
+ ],
+ },
+ ],
+ },
+ ],
}
priv_check-action-type-calls, type=seek, n=4
stop