mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-02 16:52:42 +00:00
26da835878
Original commit message from CVS: Fixes for new caps. A few tests disabled.
122 lines
3.5 KiB
C
122 lines
3.5 KiB
C
#include <gst/gst.h>
|
|
|
|
/* these caps all have a non empty intersection */
|
|
GstStaticCaps2 sinkcaps = GST_STATIC_CAPS(
|
|
"video/mpeg, "
|
|
"mpegtype:int=(1,2)"
|
|
);
|
|
|
|
GstStaticCaps2 mp1parsecaps = GST_STATIC_CAPS(
|
|
"video/mpeg, "
|
|
"mpegtype:int=(1)"
|
|
);
|
|
|
|
GstStaticCaps2 rawcaps = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\", \"YUY2\"), "
|
|
"width:int=[16,4096], "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 rawcaps2 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YUY2\"), "
|
|
"height:int=[16,256]"
|
|
);
|
|
|
|
GstStaticCaps2 rawcaps3 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\", \"YUY2\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
#if 0
|
|
/* these caps aren't used yet */
|
|
GstStaticCaps2 rawcaps4 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\", \"YUYV\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 rawcaps4 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YUYV\", \"YUY2\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
#endif
|
|
|
|
GstStaticCaps2 rawcaps6 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"format:fourcc=\"I420\"; "
|
|
"video/raw, "
|
|
"format:fourcc=\"YUYV\""
|
|
);
|
|
|
|
GstStaticCaps2 rawcaps7 = GST_STATIC_CAPS(
|
|
"video/raw, "
|
|
"format:fourcc=\"I420\"; "
|
|
"video/raw, "
|
|
"format:fourcc=\"YV12\""
|
|
);
|
|
|
|
|
|
int
|
|
main (int argc, char *argv[])
|
|
{
|
|
gboolean testret;
|
|
gint ret = 0;
|
|
|
|
gst_init (&argc, &argv);
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&mp1parsecaps),
|
|
gst_static_caps2_get (&rawcaps));
|
|
g_print ("4 <-> 2 == %d (invalid, wrong major type)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&mp1parsecaps),
|
|
gst_static_caps2_get (&sinkcaps));
|
|
g_print ("4 <-> 1 == %d (valid, subset)\n", testret);
|
|
ret = ret + (testret == TRUE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&sinkcaps),
|
|
gst_static_caps2_get (&mp1parsecaps));
|
|
g_print ("1 <-> 4 == %d (invalid, superset)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps),
|
|
gst_static_caps2_get (&rawcaps2));
|
|
g_print ("2 <-> 3 == %d (invalid, ranges)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps),
|
|
gst_static_caps2_get (&rawcaps3));
|
|
g_print ("2 <-> 5 == %d (valid)\n", testret);
|
|
ret = ret + (testret == TRUE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps3),
|
|
gst_static_caps2_get (&rawcaps));
|
|
g_print ("5 <-> 2 == %d (invalid)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps2),
|
|
gst_static_caps2_get (&rawcaps3));
|
|
g_print ("3 <-> 5 == %d (valid)\n", testret);
|
|
ret = ret + (testret == TRUE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps2),
|
|
gst_static_caps2_get (&rawcaps));
|
|
g_print ("3 <-> 2 == %d (invalid, property missing in source)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps),
|
|
gst_static_caps2_get (&rawcaps));
|
|
g_print ("2 <-> 2 == %d (valid, same caps)\n", testret);
|
|
ret = ret + (testret == TRUE) ? 0 : 1;
|
|
|
|
testret = gst_caps2_is_always_compatible (gst_static_caps2_get (&rawcaps6),
|
|
gst_static_caps2_get (&rawcaps7));
|
|
g_print ("6 <-> 7 == %d (invalid, second caps doesn't fit)\n", testret);
|
|
ret = ret + (testret == FALSE) ? 0 : 1;
|
|
|
|
return ret;
|
|
}
|