Hi I couldnt fully understand the test test_unfixed_downstream_caps from tests/check/elements/capsfilter.c. From the code flow, I couldnt get a picture of the test done.
If some one could help, it would be really helpful. GST_START_TEST (test_unfixed_downstream_caps) { GstElement *pipe, *src, *filter; GstCaps *filter_caps; GstPad *mysinkpad; GstMessage *msg; pipe = gst_check_setup_element ("pipeline"); src = gst_check_setup_element ("fakesrc"); g_object_set (src, "sizetype", 2, "sizemax", 1024, "num-buffers", 1, NULL); filter = gst_check_setup_element ("capsfilter"); filter_caps = gst_caps_from_string ("audio/x-raw-int, rate=(int)44100"); fail_unless (filter_caps != NULL); g_object_set (filter, "caps", filter_caps, NULL); gst_bin_add_many (GST_BIN (pipe), src, filter, NULL); fail_unless (gst_element_link (src, filter)); mysinkpad = gst_check_setup_sink_pad (filter, &sinktemplate, NULL); gst_pad_set_active (mysinkpad, TRUE); fail_unless_equals_int (gst_element_set_state (pipe, GST_STATE_PLAYING), GST_STATE_CHANGE_SUCCESS); /* wait for error on bus */ msg = gst_bus_poll (GST_ELEMENT_BUS (pipe), GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1); fail_if (GST_MESSAGE_TYPE (msg) != GST_MESSAGE_ERROR, "Expected ERROR message, got EOS message"); gst_message_unref (msg); /* We don't expect any output buffers unless the check fails */ fail_unless (buffers == NULL); /* cleanup */ GST_DEBUG ("cleanup"); gst_pad_set_active (mysinkpad, FALSE); gst_check_teardown_sink_pad (filter); gst_check_teardown_element (pipe); gst_caps_unref (filter_caps); } |
Hi,
fakesrc element can provide ANY capabilities, the sink pad expects the following capibilities: #define CAPS_TEMPLATE_STRING \ "audio/x-raw, " \ "channels = (int) [ 1, 2], " \ "rate = (int) [ 1, MAX ]" while only two of them are provided by the capsfilter: "audio/x-raw, rate=(int)44100" The resulting capabilities are unfixed/not negotiated/unconstrained/ambiguous. The purpose of this test is to make sure that the pipeline will fail to play in such situation. Kris On 03/12/12 07:23, deepthips wrote: > Hi I couldnt fully understand the test test_unfixed_downstream_caps from > tests/check/elements/capsfilter.c. From the code flow, I couldnt get a > picture of the test done. > > If some one could help, it would be really helpful. > > > GST_START_TEST (test_unfixed_downstream_caps) > { > GstElement *pipe, *src, *filter; > GstCaps *filter_caps; > GstPad *mysinkpad; > GstMessage *msg; > > pipe = gst_check_setup_element ("pipeline"); > > src = gst_check_setup_element ("fakesrc"); > g_object_set (src, "sizetype", 2, "sizemax", 1024, "num-buffers", 1, > NULL); > > filter = gst_check_setup_element ("capsfilter"); > filter_caps = gst_caps_from_string ("audio/x-raw-int, rate=(int)44100"); > fail_unless (filter_caps != NULL); > g_object_set (filter, "caps", filter_caps, NULL); > > gst_bin_add_many (GST_BIN (pipe), src, filter, NULL); > fail_unless (gst_element_link (src, filter)); > > mysinkpad = gst_check_setup_sink_pad (filter, &sinktemplate, NULL); > gst_pad_set_active (mysinkpad, TRUE); > > fail_unless_equals_int (gst_element_set_state (pipe, GST_STATE_PLAYING), > GST_STATE_CHANGE_SUCCESS); > > /* wait for error on bus */ > msg = gst_bus_poll (GST_ELEMENT_BUS (pipe), > GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1); > > fail_if (GST_MESSAGE_TYPE (msg) != GST_MESSAGE_ERROR, > "Expected ERROR message, got EOS message"); > gst_message_unref (msg); > > /* We don't expect any output buffers unless the check fails */ > fail_unless (buffers == NULL); > > /* cleanup */ > GST_DEBUG ("cleanup"); > > gst_pad_set_active (mysinkpad, FALSE); > gst_check_teardown_sink_pad (filter); > gst_check_teardown_element (pipe); > gst_caps_unref (filter_caps); > } > > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Unerstanding-Capsfilter-test-test-unfixed-downstream-caps-from-gst-tests-check-tp4657172.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |