#include GstStaticCaps rawcaps1 = GST_STATIC_CAPS( "video/x-raw-yuv, " "fourcc:fourcc=\"YUYV\", " "height:int=640, " "width:int=480, " "framerate:float=30.0; " "video/x-raw-yuv, " "fourcc:fourcc=\"I420\", " "height:int=640, " "width:int=480, " "framerate:float=30.0" ); GstStaticCaps rawcaps2 = GST_STATIC_CAPS( "video/x-raw-yuv" ); GstStaticCaps rawcaps3 = GST_STATIC_CAPS( "video/x-raw-yuv, height=(int) [ 0, MAX ]" ); GstStaticCaps rawcaps4 = GST_STATIC_CAPS( "video/x-raw-yuv, format=(fourcc)YUY2; video/x-raw-yuv, format=(fourcc)UYVY" ); GstStaticCaps rawcaps5 = GST_STATIC_CAPS( "video/x-raw-yuv, format=(fourcc)YUY2, framerate=(double)[0,1.79769e+308], width=(int)[0,2147483647], height=(int)[0,2147483647]; video/x-raw-yuv, format=(fourcc)UYVY, framerate=(double)[0,1.79769e+308], width=(int)[0,2147483647], height=(int)[0,2147483647]" ); GstStaticCaps rawcaps6 = GST_STATIC_CAPS( "video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240" ); GstStaticCaps rawcaps7 = GST_STATIC_CAPS( "video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[0,2147483647], height=(int)[0,2147483647], framerate=(double)[0,1.79769e+308]" ); GstStaticCaps rawcaps8 = GST_STATIC_CAPS( "video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240" ); int main (int argc, char *argv[]) { GstCaps *caps1; GstCaps *caps2; GstCaps *caps3; GstCaps *caps4; GstCaps *caps; gst_init (&argc, &argv); caps1 = gst_caps_copy( gst_static_caps_get (&rawcaps1)); caps2 = gst_caps_copy_1 (gst_static_caps_get (&rawcaps1)); #if 0 gst_caps_set(caps1, "height", GST_PROPS_INT(640)); gst_caps_set(caps1, "width", GST_PROPS_INT(480)); gst_caps_set(caps1, "framerate", GST_PROPS_FLOAT(30.0)); #endif caps = gst_caps_intersect(caps1, caps2); g_print("caps %s\n", gst_caps_to_string(caps)); if (gst_caps_is_empty (caps)) return 1; gst_caps_free(caps1); gst_caps_free(caps2); caps1 = gst_caps_copy( gst_static_caps_get (&rawcaps2)); caps2 = gst_caps_copy( gst_static_caps_get (&rawcaps3)); caps = gst_caps_intersect(caps1, caps2); g_print("caps %s\n", gst_caps_to_string(caps)); if (gst_caps_is_empty (caps)) return 1; gst_caps_free(caps1); gst_caps_free(caps2); caps1 = gst_caps_copy( gst_static_caps_get (&rawcaps4)); caps2 = gst_caps_copy( gst_static_caps_get (&rawcaps5)); caps3 = gst_caps_copy( gst_static_caps_get (&rawcaps6)); caps4 = gst_caps_intersect(caps1, caps2); caps = gst_caps_intersect(caps3, caps4); g_print("caps4 %s\n", gst_caps_to_string(caps4)); g_print("caps %s\n", gst_caps_to_string(caps)); gst_caps_free(caps1); gst_caps_free(caps2); gst_caps_free(caps3); gst_caps_free(caps4); caps1 = gst_caps_copy( gst_static_caps_get (&rawcaps7)); caps2 = gst_caps_copy( gst_static_caps_get (&rawcaps8)); caps = gst_caps_intersect(caps1, caps2); g_print("caps %s\n", gst_caps_to_string(caps)); if (gst_caps_is_empty (caps)) return 1; gst_caps_free(caps1); gst_caps_free(caps2); return 0; }