2002-01-13 22:46:34 +00:00
|
|
|
#include <gst/gst.h>
|
|
|
|
|
|
|
|
/* these caps all have a non empty intersection */
|
2004-03-13 15:27:01 +00:00
|
|
|
GstStaticCaps sinkcaps = GST_STATIC_CAPS ("video/mpeg, "
|
2003-12-22 01:39:35 +00:00
|
|
|
"mpegtype=(int)1, "
|
2004-03-13 15:27:01 +00:00
|
|
|
"foo1=(int)[20,40], " "foo2=(int)[20,40], " "foo3=(int)[10,20]");
|
2002-01-13 22:46:34 +00:00
|
|
|
|
2004-03-13 15:27:01 +00:00
|
|
|
GstStaticCaps mp1parsecaps = GST_STATIC_CAPS ("video/mpeg, "
|
2003-12-22 01:39:35 +00:00
|
|
|
"mpegtype=(int)1, "
|
2004-03-13 15:27:01 +00:00
|
|
|
"foo1=(int)30, " "foo2=(int)[20,30], " "foo3=(int)[20,30]");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps = GST_STATIC_CAPS ("video/raw, "
|
|
|
|
"width=(int)[16,4096], " "height=(int)[16,4096]");
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps2 = GST_STATIC_CAPS ("video/raw, "
|
|
|
|
"height=(int)[16,256], " "depth=(int)16");
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps3 = GST_STATIC_CAPS ("video/raw, "
|
|
|
|
"fourcc=(fourcc){\"YUY2\", \"YV12\" }, " "height=(int)[16,4096]");
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps4 = GST_STATIC_CAPS ("video/raw, "
|
|
|
|
"fourcc=(fourcc){\"YUY2\",\"YV12\",\"YUYV\" }, " "height=(int)[16,4096]");
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps5 = GST_STATIC_CAPS ("video/raw, "
|
|
|
|
"fourcc=(fourcc){\"YUYV\",\"YUY2\"}, " "height=(int)[16,4096]");
|
|
|
|
|
|
|
|
GstStaticCaps rawcaps6 = GST_STATIC_CAPS ("video/raw, "
|
2003-12-22 01:39:35 +00:00
|
|
|
"fourcc=(fourcc)\"YUYV\", "
|
|
|
|
"height=(int)640, "
|
|
|
|
"width=(int)480, "
|
|
|
|
"framerate=(double)30.0; "
|
2004-03-13 15:27:01 +00:00
|
|
|
"video/raw, "
|
2003-12-22 01:39:35 +00:00
|
|
|
"fourcc=(fourcc)\"I420\", "
|
2004-03-13 15:27:01 +00:00
|
|
|
"height=(int)640, " "width=(int)480, " "framerate=(double)30.0");
|
2003-08-02 01:55:24 +00:00
|
|
|
|
2004-03-13 15:27:01 +00:00
|
|
|
GstStaticCaps rawcaps7 =
|
2004-03-15 19:27:17 +00:00
|
|
|
GST_STATIC_CAPS
|
2004-03-13 15:27:01 +00:00
|
|
|
("video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[1,2147483647], height=(int)[1,2147483647], framerate=(double)[0,1.79769e+308]");
|
2003-12-22 03:03:31 +00:00
|
|
|
|
2004-03-13 15:27:01 +00:00
|
|
|
GstStaticCaps rawcaps8 =
|
2004-03-15 19:27:17 +00:00
|
|
|
GST_STATIC_CAPS
|
2004-03-13 15:27:01 +00:00
|
|
|
("video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2 }, width=(int)[16,4096], height=(int)[16,4096], framerate=(double)[0,1.79769e+308]");
|
2003-12-22 03:03:31 +00:00
|
|
|
|
2004-03-13 15:27:01 +00:00
|
|
|
int
|
|
|
|
main (int argc, char *argv[])
|
2002-01-13 22:46:34 +00:00
|
|
|
{
|
|
|
|
xmlDocPtr doc;
|
|
|
|
xmlNodePtr parent;
|
|
|
|
GstCaps *caps;
|
|
|
|
|
|
|
|
gst_init (&argc, &argv);
|
|
|
|
|
2005-11-30 15:20:29 +00:00
|
|
|
doc = xmlNewDoc ((const xmlChar *) "1.0");
|
|
|
|
doc->xmlRootNode =
|
|
|
|
xmlNewDocNode (doc, NULL, (const xmlChar *) "Capabilities", NULL);
|
2002-01-13 22:46:34 +00:00
|
|
|
|
|
|
|
/*
|
2004-03-13 15:27:01 +00:00
|
|
|
for (i = 0; i<100000; i++) {
|
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (rawcaps3), GST_CAPS_GET (rawcaps4));
|
|
|
|
gst_caps_unref (caps);
|
|
|
|
}
|
|
|
|
*/
|
2002-01-13 22:46:34 +00:00
|
|
|
|
2003-12-22 01:39:35 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&sinkcaps),
|
|
|
|
gst_static_caps_get (&mp1parsecaps));
|
2005-11-30 15:20:29 +00:00
|
|
|
parent =
|
|
|
|
xmlNewChild (doc->xmlRootNode, NULL, (const xmlChar *) "Capabilities1",
|
|
|
|
NULL);
|
2002-01-13 22:46:34 +00:00
|
|
|
gst_caps_save_thyself (caps, parent);
|
|
|
|
|
2003-12-22 01:39:35 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&rawcaps),
|
|
|
|
gst_static_caps_get (&rawcaps2));
|
2005-11-30 15:20:29 +00:00
|
|
|
parent =
|
|
|
|
xmlNewChild (doc->xmlRootNode, NULL, (const xmlChar *) "Capabilities2",
|
|
|
|
NULL);
|
2002-01-13 22:46:34 +00:00
|
|
|
gst_caps_save_thyself (caps, parent);
|
|
|
|
|
2003-12-22 01:39:35 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&rawcaps3),
|
|
|
|
gst_static_caps_get (&rawcaps4));
|
2005-11-30 15:20:29 +00:00
|
|
|
parent =
|
|
|
|
xmlNewChild (doc->xmlRootNode, NULL, (const xmlChar *) "Capabilities3",
|
|
|
|
NULL);
|
2002-01-13 22:46:34 +00:00
|
|
|
gst_caps_save_thyself (caps, parent);
|
|
|
|
|
2003-12-22 01:39:35 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&rawcaps3),
|
|
|
|
gst_static_caps_get (&rawcaps5));
|
2005-11-30 15:20:29 +00:00
|
|
|
parent =
|
|
|
|
xmlNewChild (doc->xmlRootNode, NULL, (const xmlChar *) "Capabilities4",
|
|
|
|
NULL);
|
2002-01-13 22:46:34 +00:00
|
|
|
gst_caps_save_thyself (caps, parent);
|
|
|
|
|
2003-12-22 01:39:35 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&rawcaps6),
|
2004-03-13 15:27:01 +00:00
|
|
|
gst_caps_new_full (gst_structure_copy (gst_caps_get_structure
|
2004-03-15 19:27:17 +00:00
|
|
|
(gst_static_caps_get (&rawcaps6), 0)), NULL));
|
2005-11-30 15:20:29 +00:00
|
|
|
parent =
|
|
|
|
xmlNewChild (doc->xmlRootNode, NULL, (const xmlChar *) "Capabilities5",
|
|
|
|
NULL);
|
2003-08-02 01:55:24 +00:00
|
|
|
gst_caps_save_thyself (caps, parent);
|
|
|
|
|
2003-12-22 03:03:31 +00:00
|
|
|
caps = gst_caps_intersect (gst_static_caps_get (&rawcaps7),
|
|
|
|
gst_static_caps_get (&rawcaps8));
|
2004-03-13 15:27:01 +00:00
|
|
|
g_print ("intersection: %s\n", gst_caps_to_string (caps));
|
2003-12-22 03:03:31 +00:00
|
|
|
|
2004-03-13 15:27:01 +00:00
|
|
|
xmlDocDump (stdout, doc);
|
2002-01-13 22:46:34 +00:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|