diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2016-10-29 11:33:18 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-11-01 20:34:37 +0200 |
commit | 280b4ac2ffc63908a74944f50589b2630be16232 (patch) | |
tree | 6838ad222a33f467ac772bd481d9bc3ddd2c15a3 /tests | |
parent | 92384493c186bd72dc4215f2746c1640d98dd2f6 (diff) | |
download | gstreamer-plugins-bad-280b4ac2ffc63908a74944f50589b2630be16232.tar.gz |
tests: rawvideoparse: add test for flow error handling
Also needs fixes in baseparse:
https://bugzilla.gnome.org/show_bug.cgi?id=773666
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check/elements/rawvideoparse.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/check/elements/rawvideoparse.c b/tests/check/elements/rawvideoparse.c index 477e7678e..91c71ab2b 100644 --- a/tests/check/elements/rawvideoparse.c +++ b/tests/check/elements/rawvideoparse.c @@ -608,6 +608,41 @@ GST_START_TEST (test_change_caps) GST_END_TEST; +GST_START_TEST (test_not_negotiated) +{ + GstElement *pipeline, *src, *parse, *sink; + GstMessage *msg; + + pipeline = gst_pipeline_new ("pipeline"); + src = gst_element_factory_make ("fakesrc", NULL); + parse = gst_element_factory_make ("rawvideoparse", NULL); + sink = gst_element_factory_make ("appsink", NULL); + fail_unless (src != NULL && parse != NULL && sink != NULL); + gst_bin_add_many (GST_BIN (pipeline), src, parse, sink, NULL); + gst_element_link_many (src, parse, sink, NULL); + + gst_util_set_object_arg (G_OBJECT (src), "sizetype", "random"); + gst_util_set_object_arg (G_OBJECT (src), "filltype", "random"); + + /* fakesrc pull mode is broken, it will create random-sized buffers */ + gst_util_set_object_arg (G_OBJECT (src), "can-activate-pull", "false"); + + gst_util_set_object_arg (G_OBJECT (parse), "format", "rgb"); + + gst_util_set_object_arg (G_OBJECT (sink), "caps", "video/x-raw,format=I420"); + + gst_element_set_state (pipeline, GST_STATE_PLAYING); + + msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipeline), + GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR); + + gst_message_unref (msg); + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); +} + +GST_END_TEST; + static Suite * rawvideoparse_suite (void) { @@ -621,6 +656,7 @@ rawvideoparse_suite (void) tcase_add_test (tc_chain, test_push_with_no_framerate); tcase_add_test (tc_chain, test_computed_plane_strides); tcase_add_test (tc_chain, test_change_caps); + tcase_add_test (tc_chain, test_not_negotiated); return s; } |