mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-29 23:32:33 +00:00
26da835878
Original commit message from CVS: Fixes for new caps. A few tests disabled.
222 lines
6.6 KiB
C
222 lines
6.6 KiB
C
#include <gst/gst.h>
|
|
#include <string.h>
|
|
|
|
GstStaticCaps2 caps1 = GST_STATIC_CAPS (
|
|
"video/mpeg, "
|
|
"mpegtype:int=(1,2)"
|
|
);
|
|
|
|
GstStaticCaps2 caps2 = GST_STATIC_CAPS (
|
|
"video/mpeg, "
|
|
"mpegtype:int=(1)"
|
|
);
|
|
|
|
GstStaticCaps2 caps3 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\",\"YUY2\"), "
|
|
"width:int=[16,4096], "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 caps4 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"fourcc:fourcc=\"YV12\", "
|
|
"height:int=[16,256]"
|
|
);
|
|
|
|
GstStaticCaps2 caps5 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\",\"YUY2\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 caps6 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YV12\",\"YUYV\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 caps7 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"fourcc:fourcc=(\"YVYV\",\"YUY2\"), "
|
|
"height:int=[16,4096]"
|
|
);
|
|
|
|
GstStaticCaps2 caps8 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"format:fourcc=\"I420\"; "
|
|
"video/raw, "
|
|
"format:fourcc=\"YUYV\""
|
|
);
|
|
|
|
GstStaticCaps2 caps9 = GST_STATIC_CAPS (
|
|
"video/raw, "
|
|
"format:fourcc=\"I420\"; "
|
|
"video/raw, "
|
|
"format:fourcc=\"YV12\""
|
|
);
|
|
|
|
static gint test = 0;
|
|
static gint failures = 0;
|
|
|
|
#define TEST_START g_print ("%3d, START\n", ++test)
|
|
#define TEST_FAIL g_print ("%3d, FAIL : failure %d\n", test, ++failures)
|
|
#define TEST_SUCCESS g_print ("%3d, SUCCESS\n", test)
|
|
#define TEST_END(result) G_STMT_START{ \
|
|
if (result) { \
|
|
TEST_SUCCESS; \
|
|
} else { \
|
|
TEST_FAIL; \
|
|
} \
|
|
}G_STMT_END
|
|
static void
|
|
test_caps_func (const GstCaps2 *caps)
|
|
{
|
|
gchar *str1, *str2;
|
|
gboolean ret = FALSE;
|
|
|
|
str1 = gst_caps2_to_string (caps);
|
|
caps = gst_caps2_from_string (str1);
|
|
if (!caps) {
|
|
g_print ("%3d, INFO : no caps from %s\n", test, str1);
|
|
TEST_END (ret);
|
|
return;
|
|
}
|
|
str2 = gst_caps2_to_string (caps);
|
|
g_print ("%3d, INFO : %s <==> %s\n", test, str1, str2);
|
|
ret = strcmp (str1, str2) == 0;
|
|
g_free (str1);
|
|
g_free (str2);
|
|
TEST_END (ret);
|
|
}
|
|
static void
|
|
test_caps (const GstCaps2 *caps)
|
|
{
|
|
TEST_START;
|
|
test_caps_func (caps);
|
|
}
|
|
static void
|
|
test_string (gchar *str)
|
|
{
|
|
GstCaps2 *caps;
|
|
|
|
TEST_START;
|
|
g_print ("%3d, INFO : checking %s\n", test, str);
|
|
caps = gst_caps2_from_string (str);
|
|
if (!caps) {
|
|
g_print ("%3d, INFO : no caps from %s\n", test, str);
|
|
TEST_FAIL;
|
|
return;
|
|
}
|
|
test_caps_func (caps);
|
|
}
|
|
static void
|
|
test_string_fail (gchar *str)
|
|
{
|
|
GstCaps2 *caps;
|
|
|
|
TEST_START;
|
|
g_print ("%3d, INFO : checking %s for failure\n", test, str);
|
|
caps = gst_caps2_from_string (str);
|
|
g_print("got %p\n", caps);
|
|
TEST_END (caps == NULL);
|
|
}
|
|
int
|
|
main (int argc, char *argv[])
|
|
{
|
|
gst_init (&argc, &argv);
|
|
goto bla;
|
|
bla:
|
|
/* stupidity tests */
|
|
test_caps (gst_caps2_new_simple ("audio/raw", NULL));
|
|
|
|
/* all sorts of caps */
|
|
test_caps (gst_static_caps2_get (&caps1));
|
|
test_caps (gst_static_caps2_get (&caps2));
|
|
test_caps (gst_static_caps2_get (&caps3));
|
|
test_caps (gst_static_caps2_get (&caps4));
|
|
test_caps (gst_static_caps2_get (&caps5));
|
|
test_caps (gst_static_caps2_get (&caps6));
|
|
test_caps (gst_static_caps2_get (&caps7));
|
|
test_caps (gst_static_caps2_get (&caps8));
|
|
test_caps (gst_static_caps2_get (&caps9));
|
|
|
|
/* mime types */
|
|
test_string ("audio/raw");
|
|
test_string ("\"audio/raw\"");
|
|
test_string ("'audio/raw'");
|
|
test_string ("\\a\\u\\d\\i\\o/\\r\\a\\w");
|
|
|
|
/* fixed props entries */
|
|
test_string ("audio/raw ,test:int=1");
|
|
test_string ("audio/raw ,test:float= 1");
|
|
test_string ("audio/raw, test:fourcc =1");
|
|
test_string ("audio/raw ,test:i=1");
|
|
test_string ("audio/raw ,test:f= 1");
|
|
test_string ("audio/raw, test:4 =1");
|
|
test_string ("audio/raw,test: fourcc = 0x0000001");
|
|
test_string ("audio/raw , test:fourcc= RGB");
|
|
test_string ("audio/raw,test :fourcc= \"RGB \"");
|
|
test_string ("audio/raw , test: string=1");
|
|
test_string ("audio/raw,test= 1");
|
|
test_string ("audio/raw,test = 1.0");
|
|
test_string ("audio/raw ,test= '1.0'");
|
|
test_string ("audio/raw,test: str= \"1\"");
|
|
test_string ("audio/raw ,test:b=False");
|
|
test_string ("audio/raw ,test :bool= trUE");
|
|
test_string ("audio/raw ,test:b = yes");
|
|
test_string ("audio/raw ,test : boolean=no");
|
|
|
|
/* unfixed props entries */
|
|
test_string_fail ("audio/raw, test= [ 1, 2 ]");
|
|
test_string_fail ("audio/raw, test= [ 1.0 , 2]");
|
|
test_string_fail ("audio/raw, test = [1, 2.5 ]");
|
|
test_string_fail ("audio/raw, test= [1.3, 2.1 ]");
|
|
test_string ("audio/raw, test :int = [1,2]");
|
|
test_string ("audio/raw, test :double = [1,2]");
|
|
test_string_fail ("audio/raw, test= [int = 1, 2 ]");
|
|
test_string_fail ("audio/raw, test:f= [ float=1.0 , 2]");
|
|
test_string_fail ("audio/raw, test = [int =1, float = 2.5 ]");
|
|
test_string_fail ("audio/raw, test:float= [1.3, float=2.1 ]");
|
|
test_string_fail ("audio/raw, test :i= [int=1,2]");
|
|
test_string_fail ("audio/raw, test:l= (int=1,2)");
|
|
test_string_fail ("audio/raw, test:list= (int=1 ,2,3 ,int= 4 , 5 ,6 , int =7 ,8 , int = 9, 10)");
|
|
test_string_fail ("audio/raw, test= (1.0)");
|
|
test_string_fail ("audio/raw, test:list= (\"hi\", 'i dig ya', dude)");
|
|
test_string_fail ("audio/raw, test:l= (int=1,2)");
|
|
test_string_fail ("audio/raw, test:list= (int=1,2)");
|
|
|
|
/* prop concatenations */
|
|
test_string_fail ("audio/raw, test:float= [1.3, float=2.1 ], test2= [ 1, 2 ]");
|
|
test_string ("audio/raw , test:fourcc= RGB,test2:int=1");
|
|
test_string_fail ("audio/raw, test= [int = 1, 2 ] ,test2 :fourcc= \"RGB \"");
|
|
test_string_fail ("audio/raw, test= [1.3, 2.1 ] , test2= (1.0)");
|
|
test_string_fail ("audio/raw, test:list= (int=1 ,2,3 ,int= 4 , 5 ,6 , int =7 ,8 , int = 9, 10), test2 = [1, 2.5 ] , test3: string=1 ,test4:i=1");
|
|
|
|
/* caps concatenations */
|
|
test_string_fail ("audio/raw, test= [int = 1, 2 ] ,test2 :fourcc= \"RGB \";\"audio/raw\"");
|
|
test_string_fail ("audio/raw, test :float = [1,2] ; audio/raw, test:fourcc =1 ;'audio/raw', test:list= (\"hi\", 'i dig ya', dude)");
|
|
test_string_fail ("audio/raw, test:float= [1.3, float=2.1 ];audio/raw, test :i= [int=1,2]");
|
|
|
|
|
|
/* mimes */
|
|
test_string_fail ("audio/raw\\");
|
|
test_string_fail ("'audio/raw");
|
|
test_string_fail ("'audio/raw\"");
|
|
/* wrong type */
|
|
test_string_fail ("audio/raw, test:int = [1.0,2]");
|
|
test_string_fail ("audio/raw, test:int = [1 ,0.2]");
|
|
test_string_fail ("audio/raw, test:int = [1.0, 2.000]");
|
|
/* unmatched */
|
|
test_string_fail ("audio/raw, test:int = [");
|
|
test_string_fail ("audio/raw, test:l = (");
|
|
test_string_fail ("audio/raw, test = \"dood'");
|
|
test_string_fail ("audio/raw, test= '");
|
|
|
|
if (failures) {
|
|
g_print ("\n FAILURES : %d\n", failures);
|
|
} else {
|
|
g_print ("\n DONE\n");
|
|
}
|
|
return failures;
|
|
}
|