summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2002-04-23 19:12:54 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2002-04-23 19:12:54 +0000
commitb172752619b35e5c8b794af1a4ead0a422aa65d8 (patch)
treeb74843f392b39d7246b3f76c4432cf6b25a72e7f /testsuite
parent54486bc8933e1d2a776aaa638cf2a28c585686b6 (diff)
downloadgstreamer-b172752619b35e5c8b794af1a4ead0a422aa65d8.tar.gz
adding clock example
Original commit message from CVS: adding clock example
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/Makefile.am4
-rw-r--r--testsuite/clock/Makefile.am9
-rw-r--r--testsuite/clock/clock1.c70
3 files changed, 81 insertions, 2 deletions
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 0e41698657..e30ac2432a 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -1,5 +1,5 @@
# FIXME : refcounting threads bytestream cleanup
-SUBDIRS = caps plugin elements ## dynparams
+SUBDIRS = caps plugin elements clock ## dynparams
testprogs = test_gst_init
@@ -12,4 +12,4 @@ LIBS = $(GST_LIBS)
CFLAGS = $(GST_CFLAGS)
# FIXME : refcounting threadds
-DIST_SUBDIRS = caps plugin bytestream cleanup elements dynparams
+DIST_SUBDIRS = caps plugin bytestream cleanup elements dynparams clock
diff --git a/testsuite/clock/Makefile.am b/testsuite/clock/Makefile.am
new file mode 100644
index 0000000000..1d5ded210b
--- /dev/null
+++ b/testsuite/clock/Makefile.am
@@ -0,0 +1,9 @@
+testprogs = clock1
+
+TESTS = $(testprogs)
+
+check_PROGRAMS = $(testprogs)
+
+LDADD = $(GST_LIBS)
+CFLAGS = $(GST_CFLAGS)
+
diff --git a/testsuite/clock/clock1.c b/testsuite/clock/clock1.c
new file mode 100644
index 0000000000..6590a77c16
--- /dev/null
+++ b/testsuite/clock/clock1.c
@@ -0,0 +1,70 @@
+/*
+ * testsuite program to test clock behaviour
+ *
+ * creates a fakesrc ! identity ! fakesink pipeline
+ * registers a callback on fakesrc and one on fakesink
+ * also register a normal GLib timeout which should not be reached
+ */
+
+#include <gst/gst.h>
+void
+gst_clock_debug (GstClock *clock)
+{
+ g_print ("Clock info: speed %f, active %s, time %d\n",
+ gst_clock_get_speed (clock),
+ gst_clock_is_active (clock) ? "yes" : "no",
+ (gint) gst_clock_get_time (clock)
+ );
+}
+
+int
+main (int argc, char *argv[])
+{
+ GstElement *src, *id, *sink, *pipeline;
+ GstClock *clock = NULL;
+
+ gst_init (&argc, &argv);
+
+ if ((src = gst_element_factory_make ("fakesrc", "source")) == NULL)
+ {
+ g_print ("Could not create a fakesrc element !\n");
+ return 1;
+ }
+ if ((id = gst_element_factory_make ("identity", "filter")) == NULL)
+ {
+ g_print ("Could not create a identity element !\n");
+ return 1;
+ }
+ if ((sink = gst_element_factory_make ("fakesink", "sink")) == NULL)
+ {
+ g_print ("Could not create a fakesink element !\n");
+ return 1;
+ }
+
+ if ((pipeline = gst_pipeline_new ("pipeline")) == NULL)
+ {
+ g_print ("Could not create a pipeline element !\n");
+ return 1;
+ }
+
+ gst_element_connect_many (src, id, sink, NULL);
+ gst_bin_add_many (GST_BIN (pipeline), src, id, sink, NULL);
+
+ clock = gst_bin_get_clock (GST_BIN (pipeline));
+ g_assert (clock != NULL);
+ gst_clock_debug (clock);
+ gst_clock_set_active (clock, TRUE);
+ gst_clock_debug (clock);
+ //clock = gst_clock_new ("clock");
+ //gst_element_set_clock (src, clock);
+ //clock = gst_element_get_clock (src);
+ //g_assert (clock != NULL);
+
+ gst_bin_iterate (GST_BIN (pipeline));
+ gst_clock_debug (clock);
+ gst_clock_debug (clock);
+ gst_clock_debug (clock);
+
+ /* success */
+ return 0;
+}