59 |
50 |
60 #if EMULATOR |
51 #if EMULATOR |
61 static GET_GLOBAL_VAR_FROM_TLS(raised_critical,gstcheck,gboolean) |
52 static GET_GLOBAL_VAR_FROM_TLS(raised_critical,gstcheck,gboolean) |
62 #define _gst_check_raised_critical (*GET_GSTREAMER_WSD_VAR_NAME(raised_critical,gstcheck,g)()) |
53 #define _gst_check_raised_critical (*GET_GSTREAMER_WSD_VAR_NAME(raised_critical,gstcheck,g)()) |
63 #else |
54 #else |
64 IMPORT_C extern gboolean _gst_check_raised_critical; |
55 extern gboolean _gst_check_raised_critical; |
65 #endif |
56 #endif |
66 //gboolean _gst_check_raised_warning = FALSE; |
57 //gboolean _gst_check_raised_warning = FALSE; |
67 #if EMULATOR |
58 #if EMULATOR |
68 static GET_GLOBAL_VAR_FROM_TLS(raised_warning,gstcheck,gboolean) |
59 static GET_GLOBAL_VAR_FROM_TLS(raised_warning,gstcheck,gboolean) |
69 #define _gst_check_raised_warning (*GET_GSTREAMER_WSD_VAR_NAME(raised_warning,gstcheck,g)()) |
60 #define _gst_check_raised_warning (*GET_GSTREAMER_WSD_VAR_NAME(raised_warning,gstcheck,g)()) |
70 #else |
61 #else |
71 IMPORT_C extern gboolean _gst_check_raised_warning; |
62 extern gboolean _gst_check_raised_warning; |
72 #endif |
63 #endif |
73 //gboolean _gst_check_expecting_log = FALSE; |
64 //gboolean _gst_check_expecting_log = FALSE; |
74 #if EMULATOR |
65 #if EMULATOR |
75 static GET_GLOBAL_VAR_FROM_TLS(expecting_log,gstcheck,gboolean) |
66 static GET_GLOBAL_VAR_FROM_TLS(expecting_log,gstcheck,gboolean) |
76 #define _gst_check_expecting_log (*GET_GSTREAMER_WSD_VAR_NAME(expecting_log,gstcheck,g)()) |
67 #define _gst_check_expecting_log (*GET_GSTREAMER_WSD_VAR_NAME(expecting_log,gstcheck,g)()) |
77 #else |
68 #else |
78 IMPORT_C extern gboolean _gst_check_expecting_log; |
69 extern gboolean _gst_check_expecting_log; |
79 #endif |
70 #endif |
80 |
71 |
81 |
72 |
82 #include <gst/check/gstcheck.h> |
73 #include <gst/check/gstcheck.h> |
83 |
74 |
110 |
101 |
111 fail_if (pipeline == NULL); |
102 fail_if (pipeline == NULL); |
112 bus = gst_element_get_bus (pipeline); |
103 bus = gst_element_get_bus (pipeline); |
113 fail_if (bus == NULL); |
104 fail_if (bus == NULL); |
114 |
105 |
115 GST_DEBUG ("running pipeline %s", descr); |
|
116 |
|
117 ret = gst_element_set_state (pipeline, GST_STATE_PLAYING); |
106 ret = gst_element_set_state (pipeline, GST_STATE_PLAYING); |
118 ret = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE); |
107 ret = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE); |
119 |
108 |
120 if (ret != GST_STATE_CHANGE_SUCCESS) { |
109 if (ret != GST_STATE_CHANGE_SUCCESS) { |
121 GST_WARNING ("have failed state change %d", ret); |
|
122 g_critical ("Couldn't set pipeline to PLAYING"); |
110 g_critical ("Couldn't set pipeline to PLAYING"); |
123 goto done; |
111 goto done; |
124 } |
112 } |
125 |
113 |
126 while (1) { |
114 while (1) { |
151 gst_element_set_state (pipeline, GST_STATE_NULL); |
139 gst_element_set_state (pipeline, GST_STATE_NULL); |
152 gst_object_unref (pipeline); |
140 gst_object_unref (pipeline); |
153 gst_object_unref (bus); |
141 gst_object_unref (bus); |
154 } |
142 } |
155 |
143 |
156 /*void test_2_elements() |
144 void test_2_elements() |
157 { |
145 { |
158 gchar *s; |
146 gchar *s; |
159 GstElement *fakesrc, *fakesink, *pipeline; |
147 GstElement *fakesrc, *fakesink, *pipeline; |
160 |
148 |
161 xmlfile = "test_2_elements"; |
149 xmlfile = "test_2_elements"; |
232 GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN)); |
220 GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN)); |
233 |
221 |
234 std_log(LOG_FILENAME_LINE, "Test Successful"); |
222 std_log(LOG_FILENAME_LINE, "Test Successful"); |
235 create_xml(0); |
223 create_xml(0); |
236 |
224 |
237 }*/ |
225 } |
238 void test_2_elements() |
226 |
239 { |
|
240 gchar *s; |
|
241 GstElement *fakesrc, *fakesink, *pipeline; |
|
242 |
|
243 xmlfile = "test_2_elements"; |
|
244 std_log(LOG_FILENAME_LINE, "Test Started test_2_elements"); |
|
245 s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=true"; |
|
246 run_pipeline (setup_pipeline (s), s, |
|
247 GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED | |
|
248 GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN); |
|
249 |
|
250 s = "fakesrc can-activate-push=true ! fakesink can-activate-pull=false"; |
|
251 run_pipeline (setup_pipeline (s), s, |
|
252 GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED | |
|
253 GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN); |
|
254 |
|
255 s = "fakesrc can-activate-push=false num-buffers=10 ! fakesink can-activate-pull=true"; |
|
256 run_pipeline (setup_pipeline (s), s, |
|
257 GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED | |
|
258 GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS); |
|
259 |
|
260 s = "fakesrc can-activate-push=true num-buffers=10 ! fakesink can-activate-pull=false"; |
|
261 run_pipeline (setup_pipeline (s), s, |
|
262 GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED | |
|
263 GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS); |
|
264 |
|
265 s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=false"; |
|
266 ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s, |
|
267 GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED | |
|
268 GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, |
|
269 GST_MESSAGE_UNKNOWN)); |
|
270 |
|
271 std_log(LOG_FILENAME_LINE, "Test Successful"); |
|
272 create_xml(0); |
|
273 |
|
274 } |
|
275 |
227 |
276 |
228 |
277 static void |
229 static void |
278 check_state_change_return (GstElement * pipeline, GstState state, |
230 check_state_change_return (GstElement * pipeline, GstState state, |
279 GstStateChangeReturn immediate, GstStateChangeReturn final) |
231 GstStateChangeReturn immediate, GstStateChangeReturn final) |
339 g_object_set (G_OBJECT (fakesrc), "can-activate-push", FALSE, NULL); |
291 g_object_set (G_OBJECT (fakesrc), "can-activate-push", FALSE, NULL); |
340 g_object_set (G_OBJECT (fakesink), "can-activate-pull", TRUE, NULL); |
292 g_object_set (G_OBJECT (fakesink), "can-activate-pull", TRUE, NULL); |
341 |
293 |
342 //pipeline = gst_parse_launch (s, NULL); |
294 //pipeline = gst_parse_launch (s, NULL); |
343 fail_unless (GST_IS_PIPELINE (pipeline)); |
295 fail_unless (GST_IS_PIPELINE (pipeline)); |
344 check_state_change_return (pipeline, GST_STATE_READY, |
296 |
345 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
297 |
346 check_state_change_return (pipeline, GST_STATE_PAUSED, |
298 |
347 GST_STATE_CHANGE_ASYNC, GST_STATE_CHANGE_SUCCESS); |
299 check_state_change_return (pipeline, GST_STATE_READY, |
348 check_state_change_return (pipeline, GST_STATE_PLAYING, |
300 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
349 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
301 check_state_change_return (pipeline, GST_STATE_PAUSED, |
350 /* can't check PAUSED, it's not deterministic */ |
302 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
351 check_state_change_return (pipeline, GST_STATE_READY, |
303 check_state_change_return (pipeline, GST_STATE_PLAYING, |
352 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
304 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
353 check_state_change_return (pipeline, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS, |
305 check_state_change_return (pipeline, GST_STATE_PAUSED, |
354 GST_STATE_CHANGE_SUCCESS); |
306 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
355 gst_object_unref (pipeline); |
307 check_state_change_return (pipeline, GST_STATE_READY, |
|
308 GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS); |
|
309 check_state_change_return (pipeline, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS, |
|
310 GST_STATE_CHANGE_SUCCESS); |
|
311 gst_object_unref (pipeline); |
356 |
312 |
357 std_log(LOG_FILENAME_LINE, "Test Successful"); |
313 std_log(LOG_FILENAME_LINE, "Test Successful"); |
358 create_xml(0); |
314 create_xml(0); |
359 |
315 |
360 } |
316 } |