mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-31 20:48:56 +00:00
fixing up tests to work with property callbacks
Original commit message from CVS: fixing up tests to work with property callbacks
This commit is contained in:
parent
a809ce288b
commit
cc3b3cc116
6 changed files with 56 additions and 2 deletions
|
@ -4,7 +4,7 @@ TESTS = $(testprogs)
|
|||
|
||||
check_PROGRAMS = $(testprogs)
|
||||
|
||||
EXTRA_DIST = events.h
|
||||
EXTRA_DIST = property.h
|
||||
LDADD = $(GST_LIBS)
|
||||
CFLAGS = $(GST_CFLAGS)
|
||||
|
||||
|
|
23
tests/old/testsuite/elements/property.h
Normal file
23
tests/old/testsuite/elements/property.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* extracted from gst-launch */
|
||||
static void
|
||||
property_change_callback (GObject *object, GstObject *orig, GParamSpec *pspec)
|
||||
{
|
||||
GValue value = { 0, }; /* the important thing is that value.type = 0 */
|
||||
gchar *str = 0;
|
||||
|
||||
if (pspec->flags & G_PARAM_READABLE) {
|
||||
g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
|
||||
g_object_get_property (G_OBJECT (orig), pspec->name, &value);
|
||||
/* fix current bug with g_strdup_value_contents not working with gint64 */
|
||||
if (G_IS_PARAM_SPEC_INT64 (pspec))
|
||||
str = g_strdup_printf ("%lld", g_value_get_int64 (&value));
|
||||
else
|
||||
str = g_strdup_value_contents (&value);
|
||||
g_print ("%s: %s = %s\n", GST_OBJECT_NAME (orig), pspec->name, str);
|
||||
g_free (str);
|
||||
g_value_unset(&value);
|
||||
} else {
|
||||
g_warning ("Parameter not readable. What's up with that?");
|
||||
}
|
||||
}
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
*/
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <property.h>
|
||||
|
||||
GstElement *
|
||||
element_create (char *name, char *element)
|
||||
|
@ -52,6 +53,9 @@ main (int argc, char *argv[])
|
|||
g_print ("Creating pipeline\n");
|
||||
pipeline = gst_pipeline_new ("pipeline");
|
||||
|
||||
g_print ("Connecting signals to pipeline\n");
|
||||
g_signal_connect (pipeline, "deep_notify", G_CALLBACK (property_change_callback), NULL);
|
||||
|
||||
g_print ("Creating elements\n");
|
||||
if (!(tee = element_create ("tee", "tee"))) return 1;
|
||||
if (!(src = element_create ("src", "fakesrc"))) return 1;
|
||||
|
|
|
@ -4,7 +4,7 @@ TESTS = $(testprogs)
|
|||
|
||||
check_PROGRAMS = $(testprogs)
|
||||
|
||||
EXTRA_DIST = events.h
|
||||
EXTRA_DIST = property.h
|
||||
LDADD = $(GST_LIBS)
|
||||
CFLAGS = $(GST_CFLAGS)
|
||||
|
||||
|
|
23
testsuite/elements/property.h
Normal file
23
testsuite/elements/property.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* extracted from gst-launch */
|
||||
static void
|
||||
property_change_callback (GObject *object, GstObject *orig, GParamSpec *pspec)
|
||||
{
|
||||
GValue value = { 0, }; /* the important thing is that value.type = 0 */
|
||||
gchar *str = 0;
|
||||
|
||||
if (pspec->flags & G_PARAM_READABLE) {
|
||||
g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
|
||||
g_object_get_property (G_OBJECT (orig), pspec->name, &value);
|
||||
/* fix current bug with g_strdup_value_contents not working with gint64 */
|
||||
if (G_IS_PARAM_SPEC_INT64 (pspec))
|
||||
str = g_strdup_printf ("%lld", g_value_get_int64 (&value));
|
||||
else
|
||||
str = g_strdup_value_contents (&value);
|
||||
g_print ("%s: %s = %s\n", GST_OBJECT_NAME (orig), pspec->name, str);
|
||||
g_free (str);
|
||||
g_value_unset(&value);
|
||||
} else {
|
||||
g_warning ("Parameter not readable. What's up with that?");
|
||||
}
|
||||
}
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
*/
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <property.h>
|
||||
|
||||
GstElement *
|
||||
element_create (char *name, char *element)
|
||||
|
@ -52,6 +53,9 @@ main (int argc, char *argv[])
|
|||
g_print ("Creating pipeline\n");
|
||||
pipeline = gst_pipeline_new ("pipeline");
|
||||
|
||||
g_print ("Connecting signals to pipeline\n");
|
||||
g_signal_connect (pipeline, "deep_notify", G_CALLBACK (property_change_callback), NULL);
|
||||
|
||||
g_print ("Creating elements\n");
|
||||
if (!(tee = element_create ("tee", "tee"))) return 1;
|
||||
if (!(src = element_create ("src", "fakesrc"))) return 1;
|
||||
|
|
Loading…
Reference in a new issue