From: Wim T. <wt...@us...> - 2003-06-13 19:12:46
|
CVS Root: /cvsroot/gstreamer Module: gstreamer Changes by: wtay Date: Fri Jun 13 2003 12:12:46 PDT Log message: - Added testcase for fixed flag on caps/props - Added union testcase (not working) Modified files: testsuite/caps : .cvsignore Makefile.am Added files: testsuite/caps : fixed.c union.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/testsuite/caps/.cvsignore.diff?r1=1.1&r2=1.2 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/testsuite/caps/Makefile.am.diff?r1=1.5&r2=1.6 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/testsuite/caps/fixed.c?rev=1.1&content-type=text/vnd.viewcvs-markup http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/testsuite/caps/union.c?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: .cvsignore =================================================================== RCS file: /cvsroot/gstreamer/gstreamer/testsuite/caps/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 25 Feb 2003 20:51:49 -0000 1.1 +++ .cvsignore 13 Jun 2003 19:12:33 -0000 1.2 @@ -10,3 +10,4 @@ intersection normalisation union +fixed Index: Makefile.am =================================================================== RCS file: /cvsroot/gstreamer/gstreamer/testsuite/caps/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile.am 18 May 2003 22:59:50 -0000 1.5 +++ Makefile.am 13 Jun 2003 19:12:33 -0000 1.6 @@ -1,7 +1,7 @@ TOP_BUILDDIR=$(shell cd $(top_builddir) && pwd) TESTS_ENVIRONMENT = GST_PLUGIN_PATH=$(TOP_BUILDDIR) GST_REGISTRY=$(TOP_BUILDDIR)/testsuite/test-registry.xml -testprogs = intersection compatibility normalisation string-conversions +testprogs = intersection compatibility normalisation union string-conversions fixed # we run gst-register here, which is a HACK to generate the test registry # before we actually run the real tests @@ -16,5 +16,9 @@ compatibility_CFLAGS = $(GST_CFLAGS) $(GNOME_CFLAGS) $(XML_CFLAGS) normalisation_LDADD = $(GST_LIBS) normalisation_CFLAGS = $(GST_CFLAGS) $(GNOME_CFLAGS) $(XML_CFLAGS) +union_LDADD = $(GST_LIBS) +union_CFLAGS = $(GST_CFLAGS) $(GNOME_CFLAGS) $(XML_CFLAGS) string_conversions_LDADD = $(GST_LIBS) string_conversions_CFLAGS = $(GST_CFLAGS) $(GNOME_CFLAGS) $(XML_CFLAGS) +fixed_LDADD = $(GST_LIBS) +fixed_CFLAGS = $(GST_CFLAGS) $(GNOME_CFLAGS) $(XML_CFLAGS) --- NEW FILE: fixed.c --- /* GStreamer * Copyright (C) <1999> Erik Walthinsen <om...@cs...> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <gst/gst.h> gint main (gint argc, gchar *argv[]) { GstCaps *caps; GstProps *props; GstPropsEntry *entry; gst_init (&argc, &argv); caps = GST_CAPS_NEW ( "testcaps", "unkown/unknown", NULL); /* newly crrated caps without props is fixed */ g_assert (GST_CAPS_IS_FIXED (caps)); entry = gst_props_entry_new ("foo", GST_PROPS_INT (5)); /* this entry is fixed */ g_assert (gst_props_entry_is_fixed (entry)); props = gst_props_empty_new (); /* props are fixed when created */ g_assert (GST_PROPS_IS_FIXED (props)); gst_props_add_entry (props, entry); /* props should still be fixed */ g_assert (GST_PROPS_IS_FIXED (props)); gst_caps_set_props (caps, props); /* caps should still be fixed */ g_assert (GST_CAPS_IS_FIXED (caps)); entry = gst_props_entry_new ("bar", GST_PROPS_INT_RANGE (1, 5)); /* this entry is variable */ g_assert (!gst_props_entry_is_fixed (entry)); gst_props_add_entry (props, entry); /* props should be variable now */ g_assert (!GST_PROPS_IS_FIXED (props)); /* caps too */ g_assert (!GST_CAPS_IS_FIXED (caps)); gst_props_remove_entry_by_name (props, "bar"); /* props should be fixed again now */ g_assert (GST_PROPS_IS_FIXED (props)); /* caps too */ g_assert (GST_CAPS_IS_FIXED (caps)); gst_props_set (props, "foo", GST_PROPS_INT_RANGE (1,5)); /* props should be variable again now */ g_assert (!GST_PROPS_IS_FIXED (props)); /* caps too */ g_assert (!GST_CAPS_IS_FIXED (caps)); return 0; } --- NEW FILE: union.c --- #include <gst/gst.h> /* these caps all have a non empty intersection */ GST_CAPS_FACTORY (sinkcaps, GST_CAPS_NEW ( "mpeg2dec_sink", "video/mpeg", "mpegtype", GST_PROPS_INT (1), "foo1", GST_PROPS_INT_RANGE (20,40), "foo2", GST_PROPS_INT_RANGE (20,40), "foo3", GST_PROPS_INT_RANGE (10,20) ) ); GST_CAPS_FACTORY (mp1parsecaps, GST_CAPS_NEW ( "mp1parse_src", "video/mpeg", "mpegtype", GST_PROPS_INT (1), "foo1", GST_PROPS_INT (30), "foo2", GST_PROPS_INT_RANGE (20,30), "foo3", GST_PROPS_INT_RANGE (20,30) ) ); int main (int argc, char *argv[]) { xmlDocPtr doc; xmlNodePtr parent; GstCaps *caps; gst_init (&argc, &argv); doc = xmlNewDoc ("1.0"); doc->xmlRootNode = xmlNewDocNode (doc, NULL, "Capabilities", NULL); caps = gst_caps_union (GST_CAPS_GET (sinkcaps), GST_CAPS_GET (mp1parsecaps)); parent = xmlNewChild (doc->xmlRootNode, NULL, "Capabilities1", NULL); gst_caps_save_thyself (caps, parent); xmlDocDump(stdout, doc); return 0; } |