#include /* this test checks that gst_pad_link takes into account all available * information when trying to link two pads. * Because identity proxies caps, the caps in the first and second link * must be compatible for this pipeline to work. * Since they are not, the second linkig attempt should fail. */ gint main (int argc, gchar ** argv) { GstElement *src, *identity, *sink; GstCaps *one, *two; gst_init (&argc, &argv); /* create incompatible caps */ src = gst_element_factory_make ("fakesrc", NULL); g_assert (src); identity = gst_element_factory_make ("identity", NULL); g_assert (identity); sink = gst_element_factory_make ("fakesink", NULL); g_assert (sink); one = gst_caps_from_string ("some/mime"); two = gst_caps_from_string ("other/mime"); g_assert (GST_PAD_LINK_SUCCESSFUL (gst_pad_link_filtered (gst_element_get_pad (src, "src"), gst_element_get_pad (identity, "sink"), one))); g_assert (!GST_PAD_LINK_SUCCESSFUL (gst_pad_link_filtered (gst_element_get_pad (identity, "src"), gst_element_get_pad (sink, "sink"), two))); return 0; }