summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/gstreamer/gstreamer1.0
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2023-02-10 07:42:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-02-15 10:21:34 +0000
commit4e07f56dced0b06d2cb60530e3989f656eede2cd (patch)
treebca1ab707f9ea795417ffa5052e59bf0f9aaf939 /meta/recipes-multimedia/gstreamer/gstreamer1.0
parent64e6bfbff69a847202192d739e00ab1e141665bd (diff)
downloadpoky-4e07f56dced0b06d2cb60530e3989f656eede2cd.tar.gz
gstreamer1.0: update 1.20.5 -> 1.22.0
Drop xingmux license snippet from plugins-ugly as it moved to plugins-good; the license was LGPL in any case: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/d132592423be64ec18a223b67810ac89f391277e/subprojects/gst-plugins-good/tests/check/elements/xingmux.c videoconvert/videoscale plgins were merged into one. (From OE-Core rev: fb2d28e0315ece6180c87c7047587673024a09f7) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/gstreamer/gstreamer1.0')
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch24
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch56
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-bin-Fix-race-conditions-in-tests.patch300
3 files changed, 38 insertions, 342 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
index 312c04fbfd..1b9278db04 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
@@ -1,20 +1,21 @@
1From 1eb77a4ea5a3967c688d8f1192f99c605badc7e2 Mon Sep 17 00:00:00 2001 1From 559e1dd850b2b9eb3a415aa43e932e5e48f605cd Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 1/4] tests: respect the idententaion used in meson 4Subject: [PATCH] tests: respect the idententaion used in meson
5 5
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7 7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9
9--- 10---
10 subprojects/gstreamer/tests/check/meson.build | 10 +++++----- 11 tests/check/meson.build | 10 +++++-----
11 1 file changed, 5 insertions(+), 5 deletions(-) 12 1 file changed, 5 insertions(+), 5 deletions(-)
12 13
13diff --git a/subprojects/gstreamer/tests/check/meson.build b/subprojects/gstreamer/tests/check/meson.build 14diff --git a/tests/check/meson.build b/tests/check/meson.build
14index 9c4228b6e4..506606684d 100644 15index 9787b0a..16caac7 100644
15--- a/subprojects/gstreamer/tests/check/meson.build 16--- a/tests/check/meson.build
16+++ b/subprojects/gstreamer/tests/check/meson.build 17+++ b/tests/check/meson.build
17@@ -146,11 +146,11 @@ foreach t : core_tests 18@@ -145,11 +145,11 @@ foreach t : core_tests
18 19
19 if not skip_test 20 if not skip_test
20 exe = executable(test_name, fname, 21 exe = executable(test_name, fname,
@@ -22,15 +23,12 @@ index 9c4228b6e4..506606684d 100644
22- cpp_args : gst_c_args + test_defines, 23- cpp_args : gst_c_args + test_defines,
23- include_directories : [configinc], 24- include_directories : [configinc],
24- link_with : link_with_libs, 25- link_with : link_with_libs,
25- dependencies : test_deps + glib_deps + gst_deps, 26- dependencies : gst_deps + test_deps,
26+ c_args : gst_c_args + test_defines, 27+ c_args : gst_c_args + test_defines,
27+ cpp_args : gst_c_args + test_defines, 28+ cpp_args : gst_c_args + test_defines,
28+ include_directories : [configinc], 29+ include_directories : [configinc],
29+ link_with : link_with_libs, 30+ link_with : link_with_libs,
30+ dependencies : test_deps + glib_deps + gst_deps, 31+ dependencies : gst_deps + test_deps,
31 ) 32 )
32 33
33 env = environment() 34 env = environment()
34--
352.33.1
36
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
index d18c19c397..568e38cbf1 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
@@ -1,7 +1,7 @@
1From 62f5bb7bfc2498219df7280e73480d8ed2378ce5 Mon Sep 17 00:00:00 2001 1From 08b1aaff972a7f6349373fc1ad4cc23081adb52c Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 2/4] tests: add support for install the tests 4Subject: [PATCH] tests: add support for install the tests
5 5
6This will provide to run the tests using the gnome-desktop-testing [1] 6This will provide to run the tests using the gnome-desktop-testing [1]
7 7
@@ -10,19 +10,20 @@ This will provide to run the tests using the gnome-desktop-testing [1]
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11 11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
13--- 14---
14 subprojects/gstreamer/meson.build | 4 ++++ 15 meson.build | 4 ++++
15 subprojects/gstreamer/meson_options.txt | 1 + 16 meson_options.txt | 1 +
16 subprojects/gstreamer/tests/check/meson.build | 22 ++++++++++++++++++- 17 tests/check/meson.build | 22 +++++++++++++++++++++-
17 .../gstreamer/tests/check/template.test.in | 3 +++ 18 tests/check/template.test.in | 3 +++
18 4 files changed, 29 insertions(+), 1 deletion(-) 19 4 files changed, 29 insertions(+), 1 deletion(-)
19 create mode 100644 subprojects/gstreamer/tests/check/template.test.in 20 create mode 100644 tests/check/template.test.in
20 21
21diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build 22diff --git a/meson.build b/meson.build
22index d20fe0040f..b595d8f990 100644 23index f9f591d..3906fb3 100644
23--- a/subprojects/gstreamer/meson.build 24--- a/meson.build
24+++ b/subprojects/gstreamer/meson.build 25+++ b/meson.build
25@@ -562,6 +562,10 @@ if bashcomp_dep.found() 26@@ -606,6 +606,10 @@ if bashcomp_dep.found()
26 endif 27 endif
27 endif 28 endif
28 29
@@ -33,10 +34,10 @@ index d20fe0040f..b595d8f990 100644
33 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') 34 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
34 35
35 pkgconfig = import('pkgconfig') 36 pkgconfig = import('pkgconfig')
36diff --git a/subprojects/gstreamer/meson_options.txt b/subprojects/gstreamer/meson_options.txt 37diff --git a/meson_options.txt b/meson_options.txt
37index 7363bdb7a1..a34ba37dad 100644 38index 7363bdb..a34ba37 100644
38--- a/subprojects/gstreamer/meson_options.txt 39--- a/meson_options.txt
39+++ b/subprojects/gstreamer/meson_options.txt 40+++ b/meson_options.txt
40@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso 41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
41 option('memory-alignment', type: 'combo', 42 option('memory-alignment', type: 'combo',
42 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], 43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
@@ -45,10 +46,10 @@ index 7363bdb7a1..a34ba37dad 100644
45 46
46 # Feature options 47 # Feature options
47 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') 48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
48diff --git a/subprojects/gstreamer/tests/check/meson.build b/subprojects/gstreamer/tests/check/meson.build 49diff --git a/tests/check/meson.build b/tests/check/meson.build
49index 506606684d..00a138a568 100644 50index 16caac7..f2d400f 100644
50--- a/subprojects/gstreamer/tests/check/meson.build 51--- a/tests/check/meson.build
51+++ b/subprojects/gstreamer/tests/check/meson.build 52+++ b/tests/check/meson.build
52@@ -124,10 +124,16 @@ test_defines = [ 53@@ -124,10 +124,16 @@ test_defines = [
53 '-UG_DISABLE_ASSERT', 54 '-UG_DISABLE_ASSERT',
54 '-UG_DISABLE_CAST_CHECKS', 55 '-UG_DISABLE_CAST_CHECKS',
@@ -67,16 +68,16 @@ index 506606684d..00a138a568 100644
67 # sanity checking 68 # sanity checking
68 if get_option('check').disabled() 69 if get_option('check').disabled()
69 if get_option('tests').enabled() 70 if get_option('tests').enabled()
70@@ -151,6 +157,8 @@ foreach t : core_tests 71@@ -150,6 +156,8 @@ foreach t : core_tests
71 include_directories : [configinc], 72 include_directories : [configinc],
72 link_with : link_with_libs, 73 link_with : link_with_libs,
73 dependencies : test_deps + glib_deps + gst_deps, 74 dependencies : gst_deps + test_deps,
74+ install_dir: installed_tests_execdir, 75+ install_dir: installed_tests_execdir,
75+ install: installed_tests_enabled, 76+ install: installed_tests_enabled,
76 ) 77 )
77 78
78 env = environment() 79 env = environment()
79@@ -162,6 +170,18 @@ foreach t : core_tests 80@@ -161,6 +169,18 @@ foreach t : core_tests
80 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') 81 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
81 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') 82 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
82 83
@@ -95,15 +96,12 @@ index 506606684d..00a138a568 100644
95 test(test_name, exe, env: env, timeout : 3 * 60) 96 test(test_name, exe, env: env, timeout : 3 * 60)
96 endif 97 endif
97 endforeach 98 endforeach
98diff --git a/subprojects/gstreamer/tests/check/template.test.in b/subprojects/gstreamer/tests/check/template.test.in 99diff --git a/tests/check/template.test.in b/tests/check/template.test.in
99new file mode 100644 100new file mode 100644
100index 0000000000..f701627f87 101index 0000000..f701627
101--- /dev/null 102--- /dev/null
102+++ b/subprojects/gstreamer/tests/check/template.test.in 103+++ b/tests/check/template.test.in
103@@ -0,0 +1,3 @@ 104@@ -0,0 +1,3 @@
104+[Test] 105+[Test]
105+Type=session 106+Type=session
106+Exec=@installed_tests_dir@/@program@ 107+Exec=@installed_tests_dir@/@program@
107--
1082.33.1
109
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-bin-Fix-race-conditions-in-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-bin-Fix-race-conditions-in-tests.patch
deleted file mode 100644
index f1fac2df57..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-bin-Fix-race-conditions-in-tests.patch
+++ /dev/null
@@ -1,300 +0,0 @@
1From e1e2d8d58c1e09e065849cdb1f6466c0537a7c51 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
3Date: Tue, 21 Jun 2022 11:51:35 +0300
4Subject: [PATCH] bin: Fix race conditions in tests
5
6The latency messages are non-deterministic and can arrive before/after
7async-done or during state-changes as they are posted by e.g. sinks from
8their streaming thread but bins are finishing asynchronous state changes
9from a secondary helper thread.
10
11To solve this, expect latency messages at any time and assert that we
12receive one at some point during the test.
13
14Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2643>
15
16Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2643]
17Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
18---
19 .../gstreamer/tests/check/gst/gstbin.c | 132 ++++++++++++------
20 1 file changed, 92 insertions(+), 40 deletions(-)
21
22diff --git a/subprojects/gstreamer/tests/check/gst/gstbin.c b/subprojects/gstreamer/tests/check/gst/gstbin.c
23index e366d5fe20f..88ff44db0c3 100644
24--- a/subprojects/gstreamer/tests/check/gst/gstbin.c
25+++ b/subprojects/gstreamer/tests/check/gst/gstbin.c
26@@ -27,50 +27,95 @@
27 #include <gst/base/gstbasesrc.h>
28
29 static void
30-pop_async_done (GstBus * bus)
31+pop_async_done (GstBus * bus, gboolean * had_latency)
32 {
33 GstMessage *message;
34+ GstMessageType types = GST_MESSAGE_ASYNC_DONE;
35+
36+ if (!*had_latency)
37+ types |= GST_MESSAGE_LATENCY;
38
39 GST_DEBUG ("popping async-done message");
40- message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, -1);
41
42- fail_unless (message && GST_MESSAGE_TYPE (message)
43- == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE");
44+ do {
45+ message = gst_bus_poll (bus, types, -1);
46
47- gst_message_unref (message);
48- GST_DEBUG ("popped message");
49+ fail_unless (message);
50+ GST_DEBUG ("popped message %s",
51+ gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
52+
53+ if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_LATENCY) {
54+ fail_unless (*had_latency == FALSE);
55+ *had_latency = TRUE;
56+ gst_clear_message (&message);
57+ types &= ~GST_MESSAGE_LATENCY;
58+ continue;
59+ }
60+
61+ fail_unless (GST_MESSAGE_TYPE (message)
62+ == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE");
63+
64+ gst_clear_message (&message);
65+ break;
66+ } while (TRUE);
67 }
68
69 static void
70-pop_latency (GstBus * bus)
71+pop_latency (GstBus * bus, gboolean * had_latency)
72 {
73 GstMessage *message;
74
75- GST_DEBUG ("popping async-done message");
76+ if (*had_latency)
77+ return;
78+
79+ GST_DEBUG ("popping latency message");
80 message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1);
81
82- fail_unless (message && GST_MESSAGE_TYPE (message)
83+ fail_unless (message);
84+ fail_unless (GST_MESSAGE_TYPE (message)
85 == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY");
86
87- gst_message_unref (message);
88- GST_DEBUG ("popped message");
89+ GST_DEBUG ("popped message %s",
90+ gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
91+ gst_clear_message (&message);
92+
93+ *had_latency = TRUE;
94 }
95
96 static void
97-pop_state_changed (GstBus * bus, int count)
98+pop_state_changed (GstBus * bus, int count, gboolean * had_latency)
99 {
100 GstMessage *message;
101-
102+ GstMessageType types = GST_MESSAGE_STATE_CHANGED;
103 int i;
104
105+ if (!*had_latency)
106+ types |= GST_MESSAGE_LATENCY;
107+
108 GST_DEBUG ("popping %d messages", count);
109 for (i = 0; i < count; ++i) {
110- message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1);
111-
112- fail_unless (message && GST_MESSAGE_TYPE (message)
113- == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED");
114-
115- gst_message_unref (message);
116+ do {
117+ message = gst_bus_poll (bus, types, -1);
118+
119+ fail_unless (message);
120+ GST_DEBUG ("popped message %s",
121+ gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
122+
123+ if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_LATENCY) {
124+ fail_unless (*had_latency == FALSE);
125+ *had_latency = TRUE;
126+ gst_clear_message (&message);
127+ types &= ~GST_MESSAGE_LATENCY;
128+ continue;
129+ }
130+
131+ fail_unless (GST_MESSAGE_TYPE (message)
132+ == GST_MESSAGE_STATE_CHANGED,
133+ "did not get GST_MESSAGE_STATE_CHANGED");
134+
135+ gst_message_unref (message);
136+ break;
137+ } while (TRUE);
138 }
139 GST_DEBUG ("popped %d messages", count);
140 }
141@@ -538,6 +583,7 @@ GST_START_TEST (test_message_state_changed_children)
142 GstBus *bus;
143 GstStateChangeReturn ret;
144 GstState current, pending;
145+ gboolean had_latency = FALSE;
146
147 pipeline = GST_PIPELINE (gst_pipeline_new (NULL));
148 fail_unless (pipeline != NULL, "Could not create pipeline");
149@@ -576,7 +622,7 @@ GST_START_TEST (test_message_state_changed_children)
150 ASSERT_OBJECT_REFCOUNT (sink, "sink", 2);
151 ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 2);
152
153- pop_state_changed (bus, 3);
154+ pop_state_changed (bus, 3, &had_latency);
155 fail_if (gst_bus_have_pending (bus), "unexpected pending messages");
156
157 ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
158@@ -619,9 +665,9 @@ GST_START_TEST (test_message_state_changed_children)
159 * its state_change message */
160 ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "pipeline", 3, 4);
161
162- pop_state_changed (bus, 3);
163- pop_async_done (bus);
164- pop_latency (bus);
165+ pop_state_changed (bus, 3, &had_latency);
166+ pop_async_done (bus, &had_latency);
167+ pop_latency (bus, &had_latency);
168 fail_if ((gst_bus_pop (bus)) != NULL);
169
170 ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "bus", 2, 3);
171@@ -648,7 +694,7 @@ GST_START_TEST (test_message_state_changed_children)
172 ASSERT_OBJECT_REFCOUNT_BETWEEN (sink, "sink", 2, 4);
173 ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 3);
174
175- pop_state_changed (bus, 3);
176+ pop_state_changed (bus, 3, &had_latency);
177 fail_if ((gst_bus_pop (bus)) != NULL);
178
179 ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
180@@ -669,7 +715,7 @@ GST_START_TEST (test_message_state_changed_children)
181 ASSERT_OBJECT_REFCOUNT_BETWEEN (sink, "sink", 3, 4);
182 ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 3);
183
184- pop_state_changed (bus, 6);
185+ pop_state_changed (bus, 6, &had_latency);
186 fail_if ((gst_bus_pop (bus)) != NULL);
187
188 ASSERT_OBJECT_REFCOUNT (src, "src", 1);
189@@ -696,6 +742,7 @@ GST_START_TEST (test_watch_for_state_change)
190 GstElement *src, *sink, *bin;
191 GstBus *bus;
192 GstStateChangeReturn ret;
193+ gboolean had_latency = FALSE;
194
195 bin = gst_element_factory_make ("bin", NULL);
196 fail_unless (bin != NULL, "Could not create bin");
197@@ -722,9 +769,9 @@ GST_START_TEST (test_watch_for_state_change)
198 GST_CLOCK_TIME_NONE);
199 fail_unless (ret == GST_STATE_CHANGE_SUCCESS);
200
201- pop_state_changed (bus, 6);
202- pop_async_done (bus);
203- pop_latency (bus);
204+ pop_state_changed (bus, 6, &had_latency);
205+ pop_async_done (bus, &had_latency);
206+ pop_latency (bus, &had_latency);
207
208 fail_unless (gst_bus_have_pending (bus) == FALSE,
209 "Unexpected messages on bus");
210@@ -732,16 +779,17 @@ GST_START_TEST (test_watch_for_state_change)
211 ret = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING);
212 fail_unless (ret == GST_STATE_CHANGE_SUCCESS);
213
214- pop_state_changed (bus, 3);
215+ pop_state_changed (bus, 3, &had_latency);
216
217+ had_latency = FALSE;
218 /* this one might return either SUCCESS or ASYNC, likely SUCCESS */
219 ret = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PAUSED);
220 gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, GST_CLOCK_TIME_NONE);
221
222- pop_state_changed (bus, 3);
223+ pop_state_changed (bus, 3, &had_latency);
224 if (ret == GST_STATE_CHANGE_ASYNC) {
225- pop_async_done (bus);
226- pop_latency (bus);
227+ pop_async_done (bus, &had_latency);
228+ pop_latency (bus, &had_latency);
229 }
230
231 fail_unless (gst_bus_have_pending (bus) == FALSE,
232@@ -898,6 +946,7 @@ GST_START_TEST (test_children_state_change_order_flagged_sink)
233 GstStateChangeReturn ret;
234 GstState current, pending;
235 GstBus *bus;
236+ gboolean had_latency = FALSE;
237
238 pipeline = gst_pipeline_new (NULL);
239 fail_unless (pipeline != NULL, "Could not create pipeline");
240@@ -951,10 +1000,11 @@ GST_START_TEST (test_children_state_change_order_flagged_sink)
241 ASSERT_STATE_CHANGE_MSG (bus, sink, GST_STATE_READY, GST_STATE_PAUSED, 107);
242 #else
243
244- pop_state_changed (bus, 2); /* pop remaining ready => paused messages off the bus */
245+ pop_state_changed (bus, 2, &had_latency); /* pop remaining ready => paused messages off the bus */
246 ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_READY, GST_STATE_PAUSED,
247 108);
248- pop_async_done (bus);
249+ pop_async_done (bus, &had_latency);
250+ pop_latency (bus, &had_latency);
251 #endif
252 /* PAUSED => PLAYING */
253 GST_DEBUG ("popping PAUSED -> PLAYING messages");
254@@ -972,8 +1022,8 @@ GST_START_TEST (test_children_state_change_order_flagged_sink)
255 fail_if (ret != GST_STATE_CHANGE_SUCCESS, "State change to READY failed");
256
257 /* TODO: do we need to check downwards state change order as well? */
258- pop_state_changed (bus, 4); /* pop playing => paused messages off the bus */
259- pop_state_changed (bus, 4); /* pop paused => ready messages off the bus */
260+ pop_state_changed (bus, 4, &had_latency); /* pop playing => paused messages off the bus */
261+ pop_state_changed (bus, 4, &had_latency); /* pop paused => ready messages off the bus */
262
263 while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 1)
264 THREAD_SWITCH ();
265@@ -1002,6 +1052,7 @@ GST_START_TEST (test_children_state_change_order_semi_sink)
266 GstStateChangeReturn ret;
267 GstState current, pending;
268 GstBus *bus;
269+ gboolean had_latency = FALSE;
270
271 /* (2) Now again, but check other code path where we don't have
272 * a proper sink correctly flagged as such, but a 'semi-sink' */
273@@ -1056,10 +1107,11 @@ GST_START_TEST (test_children_state_change_order_semi_sink)
274 ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 206);
275 ASSERT_STATE_CHANGE_MSG (bus, sink, GST_STATE_READY, GST_STATE_PAUSED, 207);
276 #else
277- pop_state_changed (bus, 2); /* pop remaining ready => paused messages off the bus */
278+ pop_state_changed (bus, 2, &had_latency); /* pop remaining ready => paused messages off the bus */
279 ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_READY, GST_STATE_PAUSED,
280 208);
281- pop_async_done (bus);
282+ pop_async_done (bus, &had_latency);
283+ pop_latency (bus, &had_latency);
284
285 /* PAUSED => PLAYING */
286 GST_DEBUG ("popping PAUSED -> PLAYING messages");
287@@ -1076,8 +1128,8 @@ GST_START_TEST (test_children_state_change_order_semi_sink)
288 fail_if (ret != GST_STATE_CHANGE_SUCCESS, "State change to READY failed");
289
290 /* TODO: do we need to check downwards state change order as well? */
291- pop_state_changed (bus, 4); /* pop playing => paused messages off the bus */
292- pop_state_changed (bus, 4); /* pop paused => ready messages off the bus */
293+ pop_state_changed (bus, 4, &had_latency); /* pop playing => paused messages off the bus */
294+ pop_state_changed (bus, 4, &had_latency); /* pop paused => ready messages off the bus */
295
296 GST_DEBUG ("waiting for pipeline to reach refcount 1");
297 while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 1)
298--
299GitLab
300