mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-31 20:48:56 +00:00
- Added testcase for fixed flag on caps/props
Original commit message from CVS: - Added testcase for fixed flag on caps/props - Added union testcase (not working)
This commit is contained in:
parent
cadb40f84d
commit
6ebefb6ab3
8 changed files with 260 additions and 2 deletions
1
tests/old/testsuite/caps/.gitignore
vendored
1
tests/old/testsuite/caps/.gitignore
vendored
|
@ -10,3 +10,4 @@ compatibility
|
|||
intersection
|
||||
normalisation
|
||||
union
|
||||
fixed
|
||||
|
|
|
@ -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_LDADD = $(GST_LIBS)
|
|||
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)
|
||||
|
|
79
tests/old/testsuite/caps/fixed.c
Normal file
79
tests/old/testsuite/caps/fixed.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
/* GStreamer
|
||||
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
|
||||
*
|
||||
* 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;
|
||||
}
|
45
tests/old/testsuite/caps/union.c
Normal file
45
tests/old/testsuite/caps/union.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#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;
|
||||
}
|
1
testsuite/caps/.gitignore
vendored
1
testsuite/caps/.gitignore
vendored
|
@ -10,3 +10,4 @@ compatibility
|
|||
intersection
|
||||
normalisation
|
||||
union
|
||||
fixed
|
||||
|
|
|
@ -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_LDADD = $(GST_LIBS)
|
|||
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)
|
||||
|
|
79
testsuite/caps/fixed.c
Normal file
79
testsuite/caps/fixed.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
/* GStreamer
|
||||
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
|
||||
*
|
||||
* 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;
|
||||
}
|
45
testsuite/caps/union.c
Normal file
45
testsuite/caps/union.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#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;
|
||||
}
|
Loading…
Reference in a new issue