diff options
author | Edward Hervey <bilboed@bilboed.com> | 2008-05-26 11:31:27 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2008-05-26 11:31:27 +0000 |
commit | e6466a06d138ed31d57208132266ce89334eda7b (patch) | |
tree | c8cdaa7de27ef70735d10f308925f638ba12569d /tests/check | |
parent | e4883bf58fc59bbb594c23d31e7252f9ab95681f (diff) |
tests/check/: Round of gst-indent and more utilities
Original commit message from CVS:
* tests/check/common.h:
* tests/check/complex.c: (GST_START_TEST):
* tests/check/gnlsource.c: (GST_START_TEST):
* tests/check/simple.c: (GST_START_TEST):
Round of gst-indent and more utilities
* tests/check/gnloperation.c: (GST_START_TEST), (gnonlin_suite):
New test for multiple-input-pad operations. Needs more work
Diffstat (limited to 'tests/check')
-rw-r--r-- | tests/check/common.h | 15 | ||||
-rw-r--r-- | tests/check/complex.c | 740 | ||||
-rw-r--r-- | tests/check/gnloperation.c | 820 | ||||
-rw-r--r-- | tests/check/gnlsource.c | 171 | ||||
-rw-r--r-- | tests/check/simple.c | 466 |
5 files changed, 1240 insertions, 972 deletions
diff --git a/tests/check/common.h b/tests/check/common.h index 0f083df..7b54559 100644 --- a/tests/check/common.h +++ b/tests/check/common.h @@ -116,15 +116,20 @@ new_gnl_src (const gchar * name, guint64 start, gint64 duration, gint priority) } static GstElement * -videotest_gnl_src (const gchar * name, guint64 start, gint64 duration, gint pattern, guint priority) +videotest_gnl_src (const gchar * name, guint64 start, gint64 duration, + gint pattern, guint priority) { GstElement * gnlsource = NULL; GstElement * videotestsrc = NULL; + GstCaps * caps = gst_caps_from_string ("video/x-raw-yuv,format=(fourcc)I420"); + + fail_if (caps == NULL); videotestsrc = gst_element_factory_make_or_warn ("videotestsrc", NULL); g_object_set (G_OBJECT (videotestsrc), "pattern", pattern, NULL); gnlsource = new_gnl_src (name, start, duration, priority); + g_object_set (G_OBJECT (gnlsource), "caps", caps, NULL); gst_bin_add (GST_BIN (gnlsource), videotestsrc); @@ -155,19 +160,25 @@ videotest_in_bin_gnl_src (const gchar * name, guint64 start, gint64 duration, gi GstElement * gnlsource = NULL; GstElement * videotestsrc = NULL; GstElement * bin = NULL; + GstElement * alpha = NULL; GstPad *srcpad = NULL; videotestsrc = gst_element_factory_make_or_warn ("videotestsrc", NULL); g_object_set (G_OBJECT (videotestsrc), "pattern", pattern, NULL); bin = gst_bin_new (NULL); + alpha = gst_element_factory_make_or_warn ("alpha", NULL); + gnlsource = new_gnl_src (name, start, duration, priority); gst_bin_add (GST_BIN (bin), videotestsrc); + gst_bin_add (GST_BIN (bin), alpha); + + gst_element_link (videotestsrc, alpha); gst_bin_add (GST_BIN (gnlsource), bin); - srcpad = gst_element_get_pad (videotestsrc, "src"); + srcpad = gst_element_get_pad (alpha, "src"); gst_element_add_pad (bin, gst_ghost_pad_new ("src", srcpad)); diff --git a/tests/check/complex.c b/tests/check/complex.c index 74dbaf0..60da9c3 100644 --- a/tests/check/complex.c +++ b/tests/check/complex.c @@ -7,65 +7,68 @@ GST_START_TEST (test_one_space_another) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 0s + Duration : 1s + Priority : 1 + */ source1 = videotest_gnl_src ("source1", 0, 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* - Source 2 - Start : 2s - Duration : 1s - Priority : 1 - */ + Source 2 + Start : 2s + Duration : 1s + Priority : 1 + */ source2 = videotest_gnl_src ("source2", 2 * GST_SECOND, 1 * GST_SECOND, 2, 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 2 * GST_SECOND, 3 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); /* Remove first source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 2 * GST_SECOND, 3 * GST_SECOND, + 1 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - /* Re-add first source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); gst_object_unref (source1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -75,29 +78,29 @@ GST_START_TEST (test_one_space_another) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -105,22 +108,22 @@ GST_START_TEST (test_one_space_another) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -128,7 +131,8 @@ GST_START_TEST (test_one_space_another) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -136,18 +140,17 @@ GST_START_TEST (test_one_space_another) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -157,21 +160,21 @@ GST_START_TEST (test_one_space_another) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -181,12 +184,13 @@ GST_START_TEST (test_one_space_another) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); gst_object_unref (GST_OBJECT (sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -201,90 +205,95 @@ GST_START_TEST (test_one_default_another) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - defaultsrc source - Start : 0s - Duration : 5s - Priority : 2 - */ - - defaultsrc = videotest_gnl_src ("defaultsrc", 0, 5 * GST_SECOND, 2, G_MAXUINT32); - fail_if (defaultsrc == NULL); - check_start_stop_duration(defaultsrc, 0, 5 * GST_SECOND, 5 * GST_SECOND); - + defaultsrc source + Start : 0s + Duration : 5s + Priority : 2 + */ + + defaultsrc = + videotest_gnl_src ("defaultsrc", 0, 5 * GST_SECOND, 2, G_MAXUINT32); + fail_if (defaultsrc == NULL); + check_start_stop_duration (defaultsrc, 0, 5 * GST_SECOND, 5 * GST_SECOND); + /* - Source 1 - Start : 1s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 1s + Duration : 1s + Priority : 1 + */ source1 = videotest_gnl_src ("source1", 1 * GST_SECOND, 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* - Source 2 - Start : 3s - Duration : 1s - Priority : 1 - */ + Source 2 + Start : 3s + Duration : 1s + Priority : 1 + */ source2 = videotest_gnl_src ("source2", 3 * GST_SECOND, 1 * GST_SECOND, 2, 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 3 * GST_SECOND, 4 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 3 * GST_SECOND, 4 * GST_SECOND, + 1 * GST_SECOND); /* - Source 3 - Start : 4s - Duration : 1s - Priority : 1 - */ + Source 3 + Start : 4s + Duration : 1s + Priority : 1 + */ source3 = videotest_gnl_src ("source3", 4 * GST_SECOND, 1 * GST_SECOND, 2, 1); fail_if (source3 == NULL); - check_start_stop_duration(source3, 4 * GST_SECOND, 5 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source3, 4 * GST_SECOND, 5 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* defaultsrc source */ gst_bin_add (GST_BIN (comp), defaultsrc); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); - check_start_stop_duration(defaultsrc, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (defaultsrc, 0, 2 * GST_SECOND, 2 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (defaultsrc, "defaultsrc", 1); - ASSERT_OBJECT_REFCOUNT(defaultsrc, "defaultsrc", 1); - /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 4 * GST_SECOND, 4 * GST_SECOND); - check_start_stop_duration(defaultsrc, 0, 4 * GST_SECOND, 4 * GST_SECOND); + check_start_stop_duration (comp, 0, 4 * GST_SECOND, 4 * GST_SECOND); + check_start_stop_duration (defaultsrc, 0, 4 * GST_SECOND, 4 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); - /* Third source */ gst_bin_add (GST_BIN (comp), source3); - check_start_stop_duration(comp, 0, 5 * GST_SECOND, 5 * GST_SECOND); - check_start_stop_duration(defaultsrc, 0, 5 * GST_SECOND, 5 * GST_SECOND); + check_start_stop_duration (comp, 0, 5 * GST_SECOND, 5 * GST_SECOND); + check_start_stop_duration (defaultsrc, 0, 5 * GST_SECOND, 5 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source3, "source3", 1); - ASSERT_OBJECT_REFCOUNT(source3, "source3", 1); - sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -294,41 +303,38 @@ GST_START_TEST (test_one_default_another) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 3 * GST_SECOND, 4 * GST_SECOND, - 3 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 3 * GST_SECOND, 4 * GST_SECOND, 3 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 5 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 5 * GST_SECOND, 4 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -336,22 +342,22 @@ GST_START_TEST (test_one_default_another) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -359,7 +365,8 @@ GST_START_TEST (test_one_default_another) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -368,30 +375,26 @@ GST_START_TEST (test_one_default_another) /* Expected segments */ /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 3 * GST_SECOND, 4 * GST_SECOND, - 3 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 3 * GST_SECOND, 4 * GST_SECOND, 3 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 5 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 5 * GST_SECOND, 4 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -401,21 +404,21 @@ GST_START_TEST (test_one_default_another) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -425,12 +428,13 @@ GST_START_TEST (test_one_default_another) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); gst_object_unref (GST_OBJECT (sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -448,66 +452,73 @@ GST_START_TEST (test_renegotiation) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; GstCaps *caps; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 1s - Duration : 1s - Priority : 1 - */ - source1 = audiotest_bin_src ("source1", 0 * GST_SECOND, 1 * GST_SECOND, 1, FALSE); - check_start_stop_duration(source1, 0 * GST_SECOND, 1 * GST_SECOND, 1 * GST_SECOND); + Source 1 + Start : 1s + Duration : 1s + Priority : 1 + */ + source1 = + audiotest_bin_src ("source1", 0 * GST_SECOND, 1 * GST_SECOND, 1, FALSE); + check_start_stop_duration (source1, 0 * GST_SECOND, 1 * GST_SECOND, + 1 * GST_SECOND); /* - Source 2 - Start : 1s - Duration : 1s - Priority : 1 - */ - source2 = audiotest_bin_src ("source2", 1 * GST_SECOND, 1 * GST_SECOND, 1, TRUE); - check_start_stop_duration(source2, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + Source 2 + Start : 1s + Duration : 1s + Priority : 1 + */ + source2 = + audiotest_bin_src ("source2", 1 * GST_SECOND, 1 * GST_SECOND, 1, TRUE); + check_start_stop_duration (source2, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* - Source 3 - Start : 2s - Duration : 1s - Priority : 1 - */ - source3 = audiotest_bin_src ("source3", 2 * GST_SECOND, 1 * GST_SECOND, 1, FALSE); - check_start_stop_duration(source3, 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND); + Source 3 + Start : 2s + Duration : 1s + Priority : 1 + */ + source3 = + audiotest_bin_src ("source3", 2 * GST_SECOND, 1 * GST_SECOND, 1, FALSE); + check_start_stop_duration (source3, 2 * GST_SECOND, 3 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); - /* Third source */ gst_bin_add (GST_BIN (comp), source3); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source3, "source3", 1); - ASSERT_OBJECT_REFCOUNT(source3, "source3", 1); - sink = gst_element_factory_make_or_warn ("fakesink", "sink"); audioconvert = gst_element_factory_make_or_warn ("audioconvert", "aconv"); @@ -520,33 +531,32 @@ GST_START_TEST (test_renegotiation) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = audioconvert; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -554,22 +564,22 @@ GST_START_TEST (test_renegotiation) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -577,7 +587,8 @@ GST_START_TEST (test_renegotiation) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -586,22 +597,20 @@ GST_START_TEST (test_renegotiation) /* Expected segments */ /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -611,21 +620,21 @@ GST_START_TEST (test_renegotiation) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -635,12 +644,13 @@ GST_START_TEST (test_renegotiation) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); gst_object_unref (GST_OBJECT (sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -656,55 +666,60 @@ GST_START_TEST (test_one_bin_space_another) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 0s + Duration : 1s + Priority : 1 + */ source1 = videotest_in_bin_gnl_src ("source1", 0, 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* - Source 2 - Start : 2s - Duration : 1s - Priority : 1 - */ - source2 = videotest_in_bin_gnl_src ("source2", 2 * GST_SECOND, 1 * GST_SECOND, 1, 1); + Source 2 + Start : 2s + Duration : 1s + Priority : 1 + */ + source2 = + videotest_in_bin_gnl_src ("source2", 2 * GST_SECOND, 1 * GST_SECOND, 1, + 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 2 * GST_SECOND, 3 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); /* Remove second source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 2 * GST_SECOND, 3 * GST_SECOND, + 1 * GST_SECOND); /* Re-add second source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); gst_object_unref (source1); sink = gst_element_factory_make_or_warn ("fakesink", "sink"); @@ -716,45 +731,45 @@ GST_START_TEST (test_one_bin_space_another) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); while (carry_on) { message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* check if the segment is the correct one (0s-4s) */ - carry_on = FALSE; - break; - case GST_MESSAGE_ERROR: - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* check if the segment is the correct one (0s-4s) */ + carry_on = FALSE; + break; + case GST_MESSAGE_ERROR: + fail_if (TRUE); + default: + break; } gst_message_unref (message); } @@ -762,13 +777,14 @@ GST_START_TEST (test_one_bin_space_another) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); gst_object_unref (GST_OBJECT (sinkpad)); gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -783,55 +799,58 @@ GST_START_TEST (test_one_above_another) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 2s - Priority : 2 - */ + Source 1 + Start : 0s + Duration : 2s + Priority : 2 + */ source1 = videotest_gnl_src ("source1", 0, 2 * GST_SECOND, 1, 2); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (source1, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* - Source 2 - Start : 2s - Duration : 2s - Priority : 1 - */ + Source 2 + Start : 2s + Duration : 2s + Priority : 1 + */ source2 = videotest_gnl_src ("source2", 1 * GST_SECOND, 2 * GST_SECOND, 2, 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 1 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (source2, 1 * GST_SECOND, 3 * GST_SECOND, + 2 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); /* Remove second source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 1 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 3 * GST_SECOND, + 2 * GST_SECOND); /* Re-add second source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); gst_object_unref (source1); sink = gst_element_factory_make_or_warn ("fakesink", "sink"); @@ -843,23 +862,22 @@ GST_START_TEST (test_one_above_another) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 3 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); @@ -869,19 +887,19 @@ GST_START_TEST (test_one_above_another) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* check if the segment is the correct one (0s-4s) */ - carry_on = FALSE; - break; - case GST_MESSAGE_ERROR: - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* check if the segment is the correct one (0s-4s) */ + carry_on = FALSE; + break; + case GST_MESSAGE_ERROR: + fail_if (TRUE); + default: + break; } gst_message_unref (message); } @@ -892,9 +910,9 @@ GST_START_TEST (test_one_above_another) gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL); gst_object_unref (GST_OBJECT (sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); diff --git a/tests/check/gnloperation.c b/tests/check/gnloperation.c index 274bc2f..9b38701 100644 --- a/tests/check/gnloperation.c +++ b/tests/check/gnloperation.c @@ -7,68 +7,71 @@ GST_START_TEST (test_simple_operation) gint64 duration; GstElement *comp, *oper, *source, *sink; CollectStructure *collect; - GstBus * bus; - GstMessage * message; + GstBus *bus; + GstMessage *message; gboolean carry_on = TRUE; - GstPad * sinkpad; + GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); /* - source - Start : 0s - Duration : 3s - Priority : 1 - */ + source + Start : 0s + Duration : 3s + Priority : 1 + */ - source = videotest_gnl_src ("source", 0, 3 * GST_SECOND, 1 , 1); + source = videotest_gnl_src ("source", 0, 3 * GST_SECOND, 1, 1); fail_if (source == NULL); check_start_stop_duration (source, 0, 3 * GST_SECOND, 3 * GST_SECOND); /* - operation - Start : 1s - Duration : 1s - Priority : 0 - */ - + operation + Start : 1s + Duration : 1s + Priority : 0 + */ + oper = new_operation ("oper", "identity", 1 * GST_SECOND, 1 * GST_SECOND, 0); fail_if (oper == NULL); - check_start_stop_duration (oper, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (oper, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* Add source */ - ASSERT_OBJECT_REFCOUNT(source, "source", 1); - ASSERT_OBJECT_REFCOUNT(oper, "oper", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); gst_bin_add (GST_BIN (comp), source); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); /* Add operaton */ gst_bin_add (GST_BIN (comp), oper); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(oper, "oper", 1); + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); /* remove source */ gst_object_ref (source); gst_bin_remove (GST_BIN (comp), source); - check_start_stop_duration (comp, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); /* re-add source */ gst_bin_add (GST_BIN (comp), source); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); gst_object_unref (source); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); + - sink = gst_element_factory_make_or_warn ("fakesink", "sink"); gst_bin_add_many (GST_BIN (pipeline), comp, sink, NULL); @@ -79,30 +82,29 @@ GST_START_TEST (test_simple_operation) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -110,22 +112,22 @@ GST_START_TEST (test_simple_operation) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -133,7 +135,8 @@ GST_START_TEST (test_simple_operation) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -141,22 +144,20 @@ GST_START_TEST (test_simple_operation) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -166,21 +167,21 @@ GST_START_TEST (test_simple_operation) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -190,12 +191,13 @@ GST_START_TEST (test_simple_operation) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); - gst_object_unref (GST_OBJECT(sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + gst_object_unref (GST_OBJECT (sinkpad)); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -210,70 +212,75 @@ GST_START_TEST (test_pyramid_operations) gint64 duration; GstElement *comp, *oper1, *oper2, *source, *sink; CollectStructure *collect; - GstBus * bus; - GstMessage * message; + GstBus *bus; + GstMessage *message; gboolean carry_on = TRUE; - GstPad * sinkpad; + GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); /* - source - Start : 0s - Duration : 10s - Priority : 2 - */ + source + Start : 0s + Duration : 10s + Priority : 2 + */ - source = videotest_gnl_src ("source", 0, 10 * GST_SECOND, 1 , 2); + source = videotest_gnl_src ("source", 0, 10 * GST_SECOND, 1, 2); check_start_stop_duration (source, 0, 10 * GST_SECOND, 10 * GST_SECOND); /* - operation1 - Start : 4s - Duration : 2s - Priority : 1 - */ - - oper1 = new_operation ("oper1", "identity", 4 * GST_SECOND, 2 * GST_SECOND, 1); - check_start_stop_duration (oper1, 4 * GST_SECOND, 6 * GST_SECOND, 2 * GST_SECOND); - - /* - operation2 - Start : 2s - Duration : 6s - Priority : 0 - */ - - oper2 = new_operation ("oper2", "identity", 2 * GST_SECOND, 6 * GST_SECOND, 0); - check_start_stop_duration (oper2, 2 * GST_SECOND, 8 * GST_SECOND, 6 * GST_SECOND); + operation1 + Start : 4s + Duration : 2s + Priority : 1 + */ + + oper1 = + new_operation ("oper1", "identity", 4 * GST_SECOND, 2 * GST_SECOND, 1); + check_start_stop_duration (oper1, 4 * GST_SECOND, 6 * GST_SECOND, + 2 * GST_SECOND); + + /* + operation2 + Start : 2s + Duration : 6s + Priority : 0 + */ + + oper2 = + new_operation ("oper2", "identity", 2 * GST_SECOND, 6 * GST_SECOND, 0); + check_start_stop_duration (oper2, 2 * GST_SECOND, 8 * GST_SECOND, + 6 * GST_SECOND); /* Add source */ - ASSERT_OBJECT_REFCOUNT(source, "source", 1); - ASSERT_OBJECT_REFCOUNT(oper1, "oper1", 1); - ASSERT_OBJECT_REFCOUNT(oper2, "oper2", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); + ASSERT_OBJECT_REFCOUNT (oper1, "oper1", 1); + ASSERT_OBJECT_REFCOUNT (oper2, "oper2", 1); gst_bin_add (GST_BIN (comp), source); - check_start_stop_duration(comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); + check_start_stop_duration (comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); /* Add operation 1 */ gst_bin_add (GST_BIN (comp), oper1); - check_start_stop_duration(comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); + check_start_stop_duration (comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(oper1, "oper1", 1); + ASSERT_OBJECT_REFCOUNT (oper1, "oper1", 1); /* Add operation 2 */ gst_bin_add (GST_BIN (comp), oper2); - check_start_stop_duration(comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); + check_start_stop_duration (comp, 0, 10 * GST_SECOND, 10 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (oper1, "oper2", 1); - ASSERT_OBJECT_REFCOUNT(oper1, "oper2", 1); - sink = gst_element_factory_make_or_warn ("fakesink", "sink"); gst_bin_add_many (GST_BIN (pipeline), comp, sink, NULL); @@ -284,38 +291,35 @@ GST_START_TEST (test_pyramid_operations) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 2 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 2 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 4 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 6 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 6 * GST_SECOND, 4 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 6 * GST_SECOND, 8 * GST_SECOND, - 6 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 6 * GST_SECOND, 8 * GST_SECOND, 6 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 8 * GST_SECOND, 10 * GST_SECOND, - 8 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 8 * GST_SECOND, 10 * GST_SECOND, 8 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source, "source", 1); + ASSERT_OBJECT_REFCOUNT (source, "source", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -323,22 +327,22 @@ GST_START_TEST (test_pyramid_operations) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -346,7 +350,8 @@ GST_START_TEST (test_pyramid_operations) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -354,30 +359,26 @@ GST_START_TEST (test_pyramid_operations) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 2 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 2 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 4 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 6 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 6 * GST_SECOND, 4 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 6 * GST_SECOND, 8 * GST_SECOND, - 6 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 6 * GST_SECOND, 8 * GST_SECOND, 6 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 8 * GST_SECOND, 10 * GST_SECOND, - 8 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 8 * GST_SECOND, 10 * GST_SECOND, 8 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -387,21 +388,21 @@ GST_START_TEST (test_pyramid_operations) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -411,12 +412,13 @@ GST_START_TEST (test_pyramid_operations) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); - gst_object_unref (GST_OBJECT(sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + gst_object_unref (GST_OBJECT (sinkpad)); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -431,77 +433,82 @@ GST_START_TEST (test_pyramid_operations2) gint64 duration; GstElement *comp, *oper, *source1, *source2, *def, *sink; CollectStructure *collect; - GstBus * bus; - GstMessage * message; + GstBus *bus; + GstMessage *message; gboolean carry_on = TRUE; - GstPad * sinkpad; + GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); /* - source1 - Start : 0s - Duration : 2s - Priority : 2 - */ + source1 + Start : 0s + Duration : 2s + Priority : 2 + */ - source1 = videotest_gnl_src ("source1", 0, 2 * GST_SECOND, 1 , 2); + source1 = videotest_gnl_src ("source1", 0, 2 * GST_SECOND, 1, 2); check_start_stop_duration (source1, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* - operation - Start : 1s - Duration : 4s - Priority : 1 - */ - + operation + Start : 1s + Duration : 4s + Priority : 1 + */ + oper = new_operation ("oper", "identity", 1 * GST_SECOND, 4 * GST_SECOND, 1); - check_start_stop_duration (oper, 1 * GST_SECOND, 5 * GST_SECOND, 4 * GST_SECOND); + check_start_stop_duration (oper, 1 * GST_SECOND, 5 * GST_SECOND, + 4 * GST_SECOND); - /* - source2 - Start : 4s - Duration : 2s - Priority : 2 - */ + /* + source2 + Start : 4s + Duration : 2s + Priority : 2 + */ - source2 = videotest_gnl_src ("source2", 4 * GST_SECOND, 2 * GST_SECOND, 1 , 2); - check_start_stop_duration (source2, 4 * GST_SECOND, 6 * GST_SECOND, 2 * GST_SECOND); + source2 = videotest_gnl_src ("source2", 4 * GST_SECOND, 2 * GST_SECOND, 1, 2); + check_start_stop_duration (source2, 4 * GST_SECOND, 6 * GST_SECOND, + 2 * GST_SECOND); /* - def (default source) - Priority = G_MAXUINT32 - */ - def = videotest_gnl_src ("default", 0 * GST_SECOND, 0 * GST_SECOND, 1, G_MAXUINT32); - - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); - ASSERT_OBJECT_REFCOUNT(oper, "oper", 1); - ASSERT_OBJECT_REFCOUNT(def, "default", 1); + def (default source) + Priority = G_MAXUINT32 + */ + def = + videotest_gnl_src ("default", 0 * GST_SECOND, 0 * GST_SECOND, 1, + G_MAXUINT32); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); + ASSERT_OBJECT_REFCOUNT (def, "default", 1); /* Add source 1 */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* Add source 2 */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + check_start_stop_duration (comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); /* Add operation */ gst_bin_add (GST_BIN (comp), oper); - check_start_stop_duration(comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + check_start_stop_duration (comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); /* Add default */ gst_bin_add (GST_BIN (comp), def); - check_start_stop_duration(comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + check_start_stop_duration (comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + - sink = gst_element_factory_make_or_warn ("fakesink", "sink"); gst_bin_add_many (GST_BIN (pipeline), comp, sink, NULL); @@ -512,38 +519,35 @@ GST_START_TEST (test_pyramid_operations2) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 4 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 5 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 5 * GST_SECOND, 4 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 5 * GST_SECOND, 6 * GST_SECOND, - 5 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 5 * GST_SECOND, 6 * GST_SECOND, 5 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -551,22 +555,22 @@ GST_START_TEST (test_pyramid_operations2) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -574,7 +578,8 @@ GST_START_TEST (test_pyramid_operations2) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -582,31 +587,244 @@ GST_START_TEST (test_pyramid_operations2) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 5 * GST_SECOND, 4 * GST_SECOND)); + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, + 5 * GST_SECOND, 6 * GST_SECOND, 5 * GST_SECOND)); + + collect->gotsegment = FALSE; + + + GST_DEBUG ("Setting pipeline to PLAYING again"); + + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + + carry_on = TRUE; + + GST_DEBUG ("Let's poll the bus"); + + while (carry_on) { + message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); + if (message) { + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; + } + gst_mini_object_unref (GST_MINI_OBJECT (message)); + } else { + GST_DEBUG ("bus_poll responded, but there wasn't any message..."); + } + } + + fail_if (collect->expected_segments != NULL); + + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + + gst_object_unref (GST_OBJECT (sinkpad)); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); + gst_object_unref (pipeline); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); + gst_object_unref (bus); + + g_free (collect); +} + +GST_END_TEST; + + + + + +GST_START_TEST (test_complex_operations) +{ + GstElement *pipeline; + guint64 start, stop; + gint64 duration; + GstElement *comp, *oper, *source1, *source2, *sink; + CollectStructure *collect; + GstBus *bus; + GstMessage *message; + gboolean carry_on = TRUE; + GstPad *sinkpad; + + pipeline = gst_pipeline_new ("test_pipeline"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + + /* + source1 + Start : 0s + Duration : 4s + Priority : 3 + */ + + source1 = videotest_in_bin_gnl_src ("source1", 0, 4 * GST_SECOND, 1, 3); + fail_if (source1 == NULL); + check_start_stop_duration (source1, 0, 4 * GST_SECOND, 4 * GST_SECOND); + + /* + source2 + Start : 2s + Duration : 4s + Priority : 2 + */ + + source2 = + videotest_in_bin_gnl_src ("source2", 2 * GST_SECOND, 4 * GST_SECOND, 2, + 2); + fail_if (source2 == NULL); + check_start_stop_duration (source2, 2 * GST_SECOND, 6 * GST_SECOND, + 4 * GST_SECOND); + + /* + operation + Start : 2s + Duration : 2s + Priority : 1 + */ + + oper = + new_operation ("oper", "videomixer", 2 * GST_SECOND, 2 * GST_SECOND, 1); + fail_if (oper == NULL); + check_start_stop_duration (oper, 2 * GST_SECOND, 4 * GST_SECOND, + 2 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); + + /* Add source1 */ + gst_bin_add (GST_BIN (comp), source1); + check_start_stop_duration (comp, 0, 4 * GST_SECOND, 4 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + + /* Add source2 */ + gst_bin_add (GST_BIN (comp), source2); + check_start_stop_duration (comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); + + /* Add operaton */ + + gst_bin_add (GST_BIN (comp), oper); + check_start_stop_duration (comp, 0, 6 * GST_SECOND, 6 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); + + + sink = gst_element_factory_make_or_warn ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (pipeline), comp, sink, NULL); + + /* Shared data */ + collect = g_new0 (CollectStructure, 1); + collect->comp = comp; + collect->sink = sink; + + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 4 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, 0, 2 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 4 * GST_SECOND, 5 * GST_SECOND, - 4 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 5 * GST_SECOND, 6 * GST_SECOND, - 5 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 6 * GST_SECOND, 4 * GST_SECOND)); + + g_signal_connect (G_OBJECT (comp), "pad-added", + G_CALLBACK (composition_pad_added_cb), collect); + sinkpad = gst_element_get_pad (sink, "sink"); + gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); + + bus = gst_element_get_bus (GST_ELEMENT (pipeline)); + + GST_DEBUG ("Setting pipeline to PLAYING"); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (oper, "oper", 1); + + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + + GST_DEBUG ("Let's poll the bus"); + + while (carry_on) { + message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); + if (message) { + switch (GST_MESSAGE_TYPE (message)) { + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; + } + gst_mini_object_unref (GST_MINI_OBJECT (message)); + } + } + + GST_DEBUG ("Setting pipeline to NULL"); + + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + + fail_if (collect->expected_segments != NULL); + + GST_DEBUG ("Resetted pipeline to READY"); + + /* Expected segments */ + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, 0, 2 * GST_SECOND, 0)); + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 4 * GST_SECOND, 2 * GST_SECOND)); + collect->expected_segments = g_list_append (collect->expected_segments, + segment_new (1.0, GST_FORMAT_TIME, + 4 * GST_SECOND, 6 * GST_SECOND, 4 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -616,21 +834,21 @@ GST_START_TEST (test_pyramid_operations2) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -640,12 +858,13 @@ GST_START_TEST (test_pyramid_operations2) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); - gst_object_unref (GST_OBJECT(sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + gst_object_unref (GST_OBJECT (sinkpad)); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -665,6 +884,7 @@ gnonlin_suite (void) tcase_add_test (tc_chain, test_simple_operation); tcase_add_test (tc_chain, test_pyramid_operations); tcase_add_test (tc_chain, test_pyramid_operations2); + tcase_add_test (tc_chain, test_complex_operations); return s; } diff --git a/tests/check/gnlsource.c b/tests/check/gnlsource.c index 09d41d4..c2252c7 100644 --- a/tests/check/gnlsource.c +++ b/tests/check/gnlsource.c @@ -2,27 +2,29 @@ GST_START_TEST (test_simple_videotestsrc) { - GstElement * pipeline; - GstElement * gnlsource, *sink; - CollectStructure * collect; - GstBus * bus; - GstMessage * message; + GstElement *pipeline; + GstElement *gnlsource, *sink; + CollectStructure *collect; + GstBus *bus; + GstMessage *message; gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; - GstPad * sinkpad; + GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - + /* - Source 1 - Start : 1s - Duration : 1s - Priority : 1 - */ - gnlsource = videotest_gnl_src ("source1", 1 * GST_SECOND, 1 * GST_SECOND, 1, 1); + Source 1 + Start : 1s + Duration : 1s + Priority : 1 + */ + gnlsource = + videotest_gnl_src ("source1", 1 * GST_SECOND, 1 * GST_SECOND, 1, 1); fail_if (gnlsource == NULL); - check_start_stop_duration(gnlsource, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (gnlsource, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -33,29 +35,28 @@ GST_START_TEST (test_simple_videotestsrc) collect = g_new0 (CollectStructure, 1); collect->comp = gnlsource; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); - + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); + g_signal_connect (G_OBJECT (gnlsource), "pad-added", - G_CALLBACK (composition_pad_added_cb), - collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); fail_if (sinkpad == NULL); - gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), - collect); + gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), - collect); + collect); bus = gst_element_get_bus (pipeline); GST_DEBUG ("Setting pipeline to PLAYING"); ASSERT_OBJECT_REFCOUNT (gnlsource, "gnlsource", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -64,23 +65,23 @@ GST_START_TEST (test_simple_videotestsrc) GST_LOG ("poll"); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (FALSE); - carry_on = FALSE; - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (FALSE); + carry_on = FALSE; + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -88,13 +89,14 @@ GST_START_TEST (test_simple_videotestsrc) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); gst_object_unref (GST_OBJECT (sinkpad)); - GST_DEBUG ("Resetted pipeline to READY"); + GST_DEBUG ("Resetted pipeline to READY"); g_free (collect); } @@ -103,27 +105,27 @@ GST_END_TEST; GST_START_TEST (test_videotestsrc_in_bin) { - GstElement * pipeline; - GstElement * gnlsource, *sink; - CollectStructure * collect; - GstBus * bus; - GstMessage * message; + GstElement *pipeline; + GstElement *gnlsource, *sink; + CollectStructure *collect; + GstBus *bus; + GstMessage *message; gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; - GstPad * sinkpad; + GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - + /* - Source 1 - Start : 1s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 1s + Duration : 1s + Priority : 1 + */ gnlsource = videotest_in_bin_gnl_src ("source1", 0, 1 * GST_SECOND, 1, 1); fail_if (gnlsource == NULL); - check_start_stop_duration(gnlsource, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (gnlsource, 0, 1 * GST_SECOND, 1 * GST_SECOND); sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -134,29 +136,27 @@ GST_START_TEST (test_videotestsrc_in_bin) collect = g_new0 (CollectStructure, 1); collect->comp = gnlsource; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); - + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); + g_signal_connect (G_OBJECT (gnlsource), "pad-added", - G_CALLBACK (composition_pad_added_cb), - collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); fail_if (sinkpad == NULL); - gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), - collect); + gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), - collect); + collect); bus = gst_element_get_bus (pipeline); GST_DEBUG ("Setting pipeline to PLAYING"); ASSERT_OBJECT_REFCOUNT (gnlsource, "gnlsource", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -165,23 +165,23 @@ GST_START_TEST (test_videotestsrc_in_bin) GST_LOG ("poll"); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (FALSE); - carry_on = FALSE; - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (FALSE); + carry_on = FALSE; + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -191,11 +191,12 @@ GST_START_TEST (test_videotestsrc_in_bin) gst_object_unref (GST_OBJECT (sinkpad)); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); - GST_DEBUG ("Resetted pipeline to READY"); + GST_DEBUG ("Resetted pipeline to READY"); g_free (collect); } diff --git a/tests/check/simple.c b/tests/check/simple.c index 3cde117..cd35096 100644 --- a/tests/check/simple.c +++ b/tests/check/simple.c @@ -7,59 +7,62 @@ GST_START_TEST (test_time_duration) gint64 duration; GstElement *comp, *source1, *source2; - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); /* - Source 1 - Start : 0s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 0s + Duration : 1s + Priority : 1 + */ source1 = videotest_gnl_src ("source1", 0, 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* - Source 2 - Start : 1s - Duration : 1s - Priority : 1 - */ + Source 2 + Start : 1s + Duration : 1s + Priority : 1 + */ source2 = videotest_gnl_src ("source2", 1 * GST_SECOND, 1 * GST_SECOND, 2, 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); /* Remove first source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Re-add first source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); gst_object_unref (source1); - - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); gst_object_unref (comp); } @@ -73,71 +76,75 @@ GST_START_TEST (test_one_after_other) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 1s - Media start : 5s - Media Duartion : 1s - Priority : 1 - */ - source1 = videotest_gnl_src_full ("source1", 0, 1 * GST_SECOND, 5 * GST_SECOND, 1 * GST_SECOND, 1, 1); + Source 1 + Start : 0s + Duration : 1s + Media start : 5s + Media Duartion : 1s + Priority : 1 + */ + source1 = + videotest_gnl_src_full ("source1", 0, 1 * GST_SECOND, 5 * GST_SECOND, + 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* - Source 2 - Start : 1s - Duration : 1s - Media start : 2s - Media Duration : 1s - Priority : 1 - */ + Source 2 + Start : 1s + Duration : 1s + Media start : 2s + Media Duration : 1s + Priority : 1 + */ source2 = videotest_gnl_src_full ("source2", 1 * GST_SECOND, 1 * GST_SECOND, - 2 * GST_SECOND, 1 * GST_SECOND, - 2, 1); + 2 * GST_SECOND, 1 * GST_SECOND, 2, 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); /* Remove first source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - /* Re-add first source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); gst_object_unref (source1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -147,29 +154,29 @@ GST_START_TEST (test_one_after_other) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 5 * GST_SECOND, 6 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 5 * GST_SECOND, 6 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -177,22 +184,22 @@ GST_START_TEST (test_one_after_other) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_WARNING ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_WARNING ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -200,7 +207,8 @@ GST_START_TEST (test_one_after_other) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -208,18 +216,17 @@ GST_START_TEST (test_one_after_other) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 5 * GST_SECOND, 6 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 5 * GST_SECOND, 6 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 1 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; @@ -229,21 +236,21 @@ GST_START_TEST (test_one_after_other) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (TRUE); - break; - case GST_MESSAGE_ERROR: - GST_ERROR ("Saw an ERROR"); - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (TRUE); + break; + case GST_MESSAGE_ERROR: + GST_ERROR ("Saw an ERROR"); + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } else { @@ -253,13 +260,14 @@ GST_START_TEST (test_one_after_other) fail_if (collect->expected_segments != NULL); - gst_object_unref (GST_OBJECT(sinkpad)); + gst_object_unref (GST_OBJECT (sinkpad)); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -274,55 +282,58 @@ GST_START_TEST (test_one_under_another) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 4s - Priority : 1 - */ + Source 1 + Start : 0s + Duration : 4s + Priority : 1 + */ source1 = videotest_gnl_src ("source1", 0, 2 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (source1, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* - Source 2 - Start : 2s - Duration : 4s - Priority : 2 - */ + Source 2 + Start : 2s + Duration : 4s + Priority : 2 + */ source2 = videotest_gnl_src ("source2", 1 * GST_SECOND, 2 * GST_SECOND, 2, 2); fail_if (source2 == NULL); - check_start_stop_duration(source2, 1 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (source2, 1 * GST_SECOND, 3 * GST_SECOND, + 2 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); /* Remove second source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 1 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 3 * GST_SECOND, + 2 * GST_SECOND); /* Re-add second source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); + check_start_stop_duration (comp, 0, 3 * GST_SECOND, 3 * GST_SECOND); gst_object_unref (source1); sink = gst_element_factory_make_or_warn ("fakesink", "sink"); @@ -334,45 +345,45 @@ GST_START_TEST (test_one_under_another) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 2 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 2 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 2 * GST_SECOND, 3 * GST_SECOND, - 2 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 2 * GST_SECOND, 3 * GST_SECOND, 2 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); while (carry_on) { message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* check if the segment is the correct one (0s-4s) */ - carry_on = FALSE; - break; - case GST_MESSAGE_ERROR: - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* check if the segment is the correct one (0s-4s) */ + carry_on = FALSE; + break; + case GST_MESSAGE_ERROR: + fail_if (TRUE); + default: + break; } gst_message_unref (message); } @@ -380,13 +391,14 @@ GST_START_TEST (test_one_under_another) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); gst_object_unref (GST_OBJECT (sinkpad)); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); @@ -401,65 +413,70 @@ GST_START_TEST (test_one_bin_after_other) CollectStructure *collect; GstBus *bus; GstMessage *message; - gboolean carry_on = TRUE; + gboolean carry_on = TRUE; guint64 start, stop; gint64 duration; GstPad *sinkpad; pipeline = gst_pipeline_new ("test_pipeline"); - comp = gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); + comp = + gst_element_factory_make_or_warn ("gnlcomposition", "test_composition"); fail_if (comp == NULL); /* - Source 1 - Start : 0s - Duration : 1s - Priority : 1 - */ + Source 1 + Start : 0s + Duration : 1s + Priority : 1 + */ source1 = videotest_in_bin_gnl_src ("source1", 0, 1 * GST_SECOND, 1, 1); fail_if (source1 == NULL); - check_start_stop_duration(source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source1, 0, 1 * GST_SECOND, 1 * GST_SECOND); /* - Source 2 - Start : 1s - Duration : 1s - Priority : 1 - */ - source2 = videotest_in_bin_gnl_src ("source2", 1 * GST_SECOND, 1 * GST_SECOND, 2, 1); + Source 2 + Start : 1s + Duration : 1s + Priority : 1 + */ + source2 = + videotest_in_bin_gnl_src ("source2", 1 * GST_SECOND, 1 * GST_SECOND, 2, + 1); fail_if (source2 == NULL); - check_start_stop_duration(source2, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (source2, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); /* Add one source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 0, 1 * GST_SECOND, 1 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); /* Second source */ gst_bin_add (GST_BIN (comp), source2); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); - ASSERT_OBJECT_REFCOUNT(source2, "source2", 1); + ASSERT_OBJECT_REFCOUNT (source2, "source2", 1); /* Remove first source */ gst_object_ref (source1); gst_bin_remove (GST_BIN (comp), source1); - check_start_stop_duration(comp, 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND); + check_start_stop_duration (comp, 1 * GST_SECOND, 2 * GST_SECOND, + 1 * GST_SECOND); + + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - /* Re-add first source */ gst_bin_add (GST_BIN (comp), source1); - check_start_stop_duration(comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); + check_start_stop_duration (comp, 0, 2 * GST_SECOND, 2 * GST_SECOND); gst_object_unref (source1); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); - + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); + sink = gst_element_factory_make_or_warn ("fakesink", "sink"); fail_if (sink == NULL); @@ -469,29 +486,29 @@ GST_START_TEST (test_one_bin_after_other) collect = g_new0 (CollectStructure, 1); collect->comp = comp; collect->sink = sink; - + /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); g_signal_connect (G_OBJECT (comp), "pad-added", - G_CALLBACK (composition_pad_added_cb), collect); + G_CALLBACK (composition_pad_added_cb), collect); sinkpad = gst_element_get_pad (sink, "sink"); gst_pad_add_event_probe (sinkpad, G_CALLBACK (sinkpad_event_probe), collect); - gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), collect); + gst_pad_add_buffer_probe (sinkpad, G_CALLBACK (sinkpad_buffer_probe), + collect); bus = gst_element_get_bus (GST_ELEMENT (pipeline)); GST_DEBUG ("Setting pipeline to PLAYING"); - ASSERT_OBJECT_REFCOUNT(source1, "source1", 1); + ASSERT_OBJECT_REFCOUNT (source1, "source1", 1); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); GST_DEBUG ("Let's poll the bus"); @@ -499,21 +516,21 @@ GST_START_TEST (test_one_bin_after_other) message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - GST_WARNING ("Got an EOS"); - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (FALSE); - break; - case GST_MESSAGE_ERROR: - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + GST_WARNING ("Got an EOS"); + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (FALSE); + break; + case GST_MESSAGE_ERROR: + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -521,7 +538,8 @@ GST_START_TEST (test_one_bin_after_other) GST_DEBUG ("Setting pipeline to NULL"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_READY) == GST_STATE_CHANGE_FAILURE); fail_if (collect->expected_segments != NULL); @@ -529,37 +547,36 @@ GST_START_TEST (test_one_bin_after_other) /* Expected segments */ collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 0, 1 * GST_SECOND, 0)); + segment_new (1.0, GST_FORMAT_TIME, 0, 1 * GST_SECOND, 0)); collect->expected_segments = g_list_append (collect->expected_segments, - segment_new (1.0, GST_FORMAT_TIME, - 1 * GST_SECOND, 2 * GST_SECOND, - 1 * GST_SECOND)); + segment_new (1.0, GST_FORMAT_TIME, + 1 * GST_SECOND, 2 * GST_SECOND, 1 * GST_SECOND)); collect->gotsegment = FALSE; GST_DEBUG ("Setting pipeline to PLAYING again"); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); carry_on = TRUE; while (carry_on) { message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); if (message) { switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_EOS: - /* we should check if we really finished here */ - carry_on = FALSE; - break; - case GST_MESSAGE_SEGMENT_START: - case GST_MESSAGE_SEGMENT_DONE: - /* We shouldn't see any segement messages, since we didn't do a segment seek */ - GST_WARNING ("Saw a Segment start/stop"); - fail_if (FALSE); - break; - case GST_MESSAGE_ERROR: - fail_if (TRUE); - default: - break; + case GST_MESSAGE_EOS: + /* we should check if we really finished here */ + carry_on = FALSE; + break; + case GST_MESSAGE_SEGMENT_START: + case GST_MESSAGE_SEGMENT_DONE: + /* We shouldn't see any segement messages, since we didn't do a segment seek */ + GST_WARNING ("Saw a Segment start/stop"); + fail_if (FALSE); + break; + case GST_MESSAGE_ERROR: + fail_if (TRUE); + default: + break; } gst_mini_object_unref (GST_MINI_OBJECT (message)); } @@ -569,11 +586,12 @@ GST_START_TEST (test_one_bin_after_other) fail_if (collect->expected_segments != NULL); - fail_if (gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + fail_if (gst_element_set_state (GST_ELEMENT (pipeline), + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); - ASSERT_OBJECT_REFCOUNT_BETWEEN(pipeline, "main pipeline", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "main pipeline", 1, 2); gst_object_unref (pipeline); - ASSERT_OBJECT_REFCOUNT_BETWEEN(bus, "main bus", 1, 2); + ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "main bus", 1, 2); gst_object_unref (bus); g_free (collect); |