Autoplug3 shows an example of an autoplugged mp3 player.
authorWim Taymans <wim.taymans@gmail.com>
Tue, 17 Apr 2001 21:03:43 +0000 (21:03 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 17 Apr 2001 21:03:43 +0000 (21:03 +0000)
Original commit message from CVS:
Autoplug3 shows an example of an autoplugged mp3 player.
Autoplug4 shows various static autoplugger examples.

tests/Makefile.am
tests/autoplug3.c
tests/autoplug4.c [new file with mode: 0644]

index 709d5a9..c30852d 100644 (file)
@@ -2,7 +2,7 @@ SUBDIRS = sched eos
 
 noinst_PROGRAMS = init loadall simplefake states caps queue registry \
 paranoia rip mp3encode autoplug props case4 markup load tee autoplug2 autoplug3 \
-capsconnect padfactory
+capsconnect padfactory autoplug4
 
 # we have nothing but apps here, we can do this safely
 LIBS += $(GST_LIBS)
index 34927ed..479c415 100644 (file)
 int
 main (int argc, char *argv[])
 {
-  GstElement *element;
-  GstElement *sink1, *sink2;
   GstAutoplug *autoplug;
-  GstAutoplug *autoplug2;
+  GstElement *element;
+  GstElement *sink;
+  GstElement *pipeline;
+  GstElement *disksrc;
 
   gst_init(&argc,&argv);
 
-  sink1 = gst_elementfactory_make ("videosink", "videosink");
-  sink2 = gst_elementfactory_make ("osssink", "osssink");
+  sink = gst_elementfactory_make ("osssink", "osssink");
+  g_assert (sink != NULL);
 
   autoplug = gst_autoplugfactory_make ("staticrender");
-  autoplug2 = gst_autoplugfactory_make ("static");
+  g_assert (autoplug != NULL);
   
   element = gst_autoplug_to_renderers (autoplug, 
-                 gst_caps_new ("mp3caps", "audio/mp3", NULL), sink2, NULL);
-  xmlSaveFile ("autoplug3_1.gst", gst_xml_write (element));
+                                      gst_caps_new (
+                                        "mp3caps", 
+                                        "audio/mp3",
+                                        NULL
+                                      ), 
+                                      sink,
+                                      NULL);
+  g_assert (element != NULL);
 
-  element = gst_autoplug_to_renderers (autoplug, 
-                 gst_caps_new ("mpeg1caps", "video/mpeg", NULL), sink1, NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_2.gst", gst_xml_write (element));
-  }
+  pipeline = gst_pipeline_new ("main_pipeline");
+  g_assert (pipeline != NULL);
 
-  element = gst_autoplug_to_caps (autoplug2,
-                 gst_caps_new(
-                         "testcaps3",
-                         "video/mpeg",
-                         gst_props_new (
-                             "mpegversion",  GST_PROPS_INT (1),
-                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
-                             NULL)),
-                 gst_caps_new("testcaps4","audio/raw", NULL),
-                 NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_3.gst", gst_xml_write (element));
-  }
+  disksrc = gst_elementfactory_make ("disksrc", "disk_reader");
+  g_assert (disksrc != NULL);
 
-  element = gst_autoplug_to_caps (autoplug2,
-                 gst_caps_new(
-                         "testcaps5",
-                         "video/mpeg",
-                         gst_props_new (
-                             "mpegversion",  GST_PROPS_INT (1),
-                             "systemstream", GST_PROPS_BOOLEAN (FALSE),
-                             NULL)),
-                 gst_caps_new("testcaps6", "video/raw", NULL),
-                 NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_4.gst", gst_xml_write (element));
-  }
+  gst_bin_add (GST_BIN (pipeline), disksrc);
+  gst_bin_add (GST_BIN (pipeline), element);
 
-  element = gst_autoplug_to_caps (autoplug2,
-                 gst_caps_new(
-                         "testcaps7",
-                         "video/avi", NULL),
-                 gst_caps_new("testcaps8", "video/raw", NULL),
-                 gst_caps_new("testcaps9", "audio/raw", NULL),
-                 NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_5.gst", gst_xml_write (element));
-  }
+  gst_element_connect (disksrc, "src", element, "sink");
 
-  element = gst_autoplug_to_caps (autoplug2,
-                 gst_caps_new(
-                         "testcaps10",
-                         "video/mpeg",
-                         gst_props_new (
-                             "mpegversion",  GST_PROPS_INT (1),
-                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
-                             NULL)),
-                 gst_caps_new("testcaps10", "video/raw", NULL),
-                 gst_caps_new("testcaps11", "audio/raw", NULL),
-                 NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_6.gst", gst_xml_write (element));
-  }
+  gtk_object_set (GTK_OBJECT (disksrc), "location", argv[1], NULL);
 
-  sink1 = gst_elementfactory_make ("videosink", "videosink");
-  sink2 = gst_elementfactory_make ("osssink", "osssink");
-  
-  element = gst_autoplug_to_renderers (autoplug,
-                 gst_caps_new(
-                         "testcaps10",
-                         "video/mpeg",
-                         gst_props_new (
-                             "mpegversion",  GST_PROPS_INT (1),
-                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
-                             NULL)),
-                 sink1,
-                 sink2,
-                 NULL);
-  if (element) {
-    xmlSaveFile ("autoplug3_7.gst", gst_xml_write (element));
-  }
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  while (gst_bin_iterate (GST_BIN (pipeline)));
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
 
   exit (0);
 }
diff --git a/tests/autoplug4.c b/tests/autoplug4.c
new file mode 100644 (file)
index 0000000..34927ed
--- /dev/null
@@ -0,0 +1,102 @@
+#include <gst/gst.h>
+
+int
+main (int argc, char *argv[])
+{
+  GstElement *element;
+  GstElement *sink1, *sink2;
+  GstAutoplug *autoplug;
+  GstAutoplug *autoplug2;
+
+  gst_init(&argc,&argv);
+
+  sink1 = gst_elementfactory_make ("videosink", "videosink");
+  sink2 = gst_elementfactory_make ("osssink", "osssink");
+
+  autoplug = gst_autoplugfactory_make ("staticrender");
+  autoplug2 = gst_autoplugfactory_make ("static");
+  
+  element = gst_autoplug_to_renderers (autoplug, 
+                 gst_caps_new ("mp3caps", "audio/mp3", NULL), sink2, NULL);
+  xmlSaveFile ("autoplug3_1.gst", gst_xml_write (element));
+
+  element = gst_autoplug_to_renderers (autoplug, 
+                 gst_caps_new ("mpeg1caps", "video/mpeg", NULL), sink1, NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_2.gst", gst_xml_write (element));
+  }
+
+  element = gst_autoplug_to_caps (autoplug2,
+                 gst_caps_new(
+                         "testcaps3",
+                         "video/mpeg",
+                         gst_props_new (
+                             "mpegversion",  GST_PROPS_INT (1),
+                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
+                             NULL)),
+                 gst_caps_new("testcaps4","audio/raw", NULL),
+                 NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_3.gst", gst_xml_write (element));
+  }
+
+  element = gst_autoplug_to_caps (autoplug2,
+                 gst_caps_new(
+                         "testcaps5",
+                         "video/mpeg",
+                         gst_props_new (
+                             "mpegversion",  GST_PROPS_INT (1),
+                             "systemstream", GST_PROPS_BOOLEAN (FALSE),
+                             NULL)),
+                 gst_caps_new("testcaps6", "video/raw", NULL),
+                 NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_4.gst", gst_xml_write (element));
+  }
+
+  element = gst_autoplug_to_caps (autoplug2,
+                 gst_caps_new(
+                         "testcaps7",
+                         "video/avi", NULL),
+                 gst_caps_new("testcaps8", "video/raw", NULL),
+                 gst_caps_new("testcaps9", "audio/raw", NULL),
+                 NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_5.gst", gst_xml_write (element));
+  }
+
+  element = gst_autoplug_to_caps (autoplug2,
+                 gst_caps_new(
+                         "testcaps10",
+                         "video/mpeg",
+                         gst_props_new (
+                             "mpegversion",  GST_PROPS_INT (1),
+                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
+                             NULL)),
+                 gst_caps_new("testcaps10", "video/raw", NULL),
+                 gst_caps_new("testcaps11", "audio/raw", NULL),
+                 NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_6.gst", gst_xml_write (element));
+  }
+
+  sink1 = gst_elementfactory_make ("videosink", "videosink");
+  sink2 = gst_elementfactory_make ("osssink", "osssink");
+  
+  element = gst_autoplug_to_renderers (autoplug,
+                 gst_caps_new(
+                         "testcaps10",
+                         "video/mpeg",
+                         gst_props_new (
+                             "mpegversion",  GST_PROPS_INT (1),
+                             "systemstream", GST_PROPS_BOOLEAN (TRUE),
+                             NULL)),
+                 sink1,
+                 sink2,
+                 NULL);
+  if (element) {
+    xmlSaveFile ("autoplug3_7.gst", gst_xml_write (element));
+  }
+
+  exit (0);
+}