Docs updates
authorWim Taymans <wim.taymans@gmail.com>
Sun, 21 Jan 2001 23:20:46 +0000 (23:20 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sun, 21 Jan 2001 23:20:46 +0000 (23:20 +0000)
Original commit message from CVS:
Docs updates
Added XML load from memory functionality
Undid the videosink patch, something else is wrong now on my machine:
no MMX acceleration :-(

22 files changed:
docs/gst/gstreamer-docs.sgml
docs/gst/gstreamer-sections.txt
docs/gst/tmpl/gstbin.sgml
docs/gst/tmpl/gstelement.sgml
docs/gst/tmpl/gstinfo.sgml
docs/gst/tmpl/gstpad.sgml
docs/gst/tmpl/gstparse.sgml
docs/gst/tmpl/gstqueue.sgml
docs/gst/tmpl/gstreamer-unused.sgml
docs/gst/tmpl/gstxml.sgml
gst/gstautoplug.c
gst/gstbin.c
gst/gstelement.h
gst/gstpad.c
gst/gstpad.h
gst/gstparse.c
gst/gstqueue.c
gst/gstthread.c
gst/gstxml.c
gst/gstxml.h
plugins/elements/gstqueue.c
tools/gstreamer-inspect.c

index d4ec016..c639846 100644 (file)
@@ -14,6 +14,7 @@
 <!entity GstPad SYSTEM "sgml/gstpad.sgml">
 <!entity GstPipeline SYSTEM "sgml/gstpipeline.sgml">
 <!entity GstAutoplug SYSTEM "sgml/gstautoplug.sgml">
+<!entity GstParse SYSTEM "sgml/gstparse.sgml">
 <!entity GstPlugin SYSTEM "sgml/gstplugin.sgml">
 <!entity GstThread SYSTEM "sgml/gstthread.sgml">
 <!entity GstTrace SYSTEM "sgml/gsttrace.sgml">
@@ -61,27 +62,27 @@ well as the object hiarchy that defines elements and bins, along
 with some more specialized elements.</para>
 
     &Gst;
-    &GstInfo;
-    &GstObject;
-    &GstElement;
-    &GstBin;
-    &GstPipeline;
     &GstAutoplug;
+    &GstBin;
     &GstBuffer;
     &GstBufferPool;
+    &GstCaps;
+    &GstCpu;
+    &GstElement;
+    &GstInfo;
+    &GstMeta;
+    &GstObject;
     &GstPad;
+    &GstParse;
+    &GstPipeline;
     &GstPlugin;
-    &GstThread;
+    &GstProps;
     &GstQueue;
-    &GstTypeFind;
-
+    &GstThread;
+    &GstTrace;
     &GstType;
-    &GstCaps;
-    &GstProps;
-    &GstMeta;
+    &GstTypeFind;
     &GstUtils;
-    &GstCpu;
-    &GstTrace;
     &GstXml;
 
     &cothreads;
index f11aacc..3d1ebcd 100644 (file)
@@ -105,8 +105,6 @@ GST_IS_BIN
 GST_IS_BIN_CLASS
 gst_bin_details
 gst_bin_use_cothreads
-gst_bin_remove_eos_provider
-gst_bin_add_eos_provider
 _GstBinChain
 </SECTION>
 
@@ -189,6 +187,7 @@ GST_STATE_READY_TO_NULL
 GstElementFlags
 GST_ELEMENT_IS_THREAD_SUGGESTED
 GST_ELEMENT_IS_COTHREAD_STOPPING
+GST_ELEMENT_IS_EOS
 GstElement
 GstElementDetails
 GstElementFactory
@@ -238,7 +237,6 @@ GST_ELEMENT_CLASS
 GST_IS_ELEMENT
 GST_IS_ELEMENT_CLASS
 gst_element_get_type
-gst_element_announce_eos
 </SECTION>
 
 <SECTION>
@@ -356,9 +354,9 @@ gst_pad_set_element_private
 gst_pad_get_element_private
 gst_pad_set_parent
 gst_pad_get_parent
-gst_pad_add_ghost_parent
-gst_pad_remove_ghost_parent
-gst_pad_get_ghost_parents
+gst_pad_add_ghost_pad
+gst_pad_remove_ghost_pad
+gst_pad_get_ghost_pad_list
 gst_pad_get_peer
 gst_pad_connect
 gst_pad_disconnect
@@ -368,7 +366,6 @@ gst_pad_pull_region
 gst_pad_pullregion
 gst_pad_select
 gst_pad_set_eos
-gst_pad_eos_func
 gst_pad_handle_qos
 gst_pad_eos
 gst_pad_save_thyself
@@ -390,6 +387,7 @@ GST_RPAD_EOSFUNC
 
 GST_GPAD_REALPAD
 GstGhostPad
+gst_ghost_pad_new
 
 GstPadFactoryEntry
 GstPadFactory[]
@@ -656,6 +654,7 @@ gst_util_dump_mem
 <TITLE>GstXml</TITLE>
 GstXML
 gst_xml_new
+gst_xml_new_from_memory
 gst_xml_write
 gst_xml_get_element
 gst_xml_get_topelements
index 9daa64b..edcd120 100644 (file)
@@ -103,6 +103,7 @@ Flags for a bin.
 </para>
 
 @bin: 
+@Returns: 
 
 
 <!-- ##### FUNCTION gst_bin_create_plan ##### -->
index a2d30f2..fe7d0cc 100644 (file)
@@ -131,6 +131,7 @@ This enum defines the standard flags that an element may have.
 @GST_ELEMENT_NEW_LOOPFUNC: 
 @GST_ELEMENT_COTHREAD_STOPPING: 
 @GST_ELEMENT_USE_COTHREAD: 
+@GST_ELEMENT_EOS: 
 @GST_ELEMENT_FLAG_LAST: 
 
 <!-- ##### MACRO GST_ELEMENT_IS_THREAD_SUGGESTED ##### -->
@@ -149,6 +150,14 @@ Queries whether the cothread holding this element needs to be stopped.
 @obj: The element to query
 
 
+<!-- ##### MACRO GST_ELEMENT_IS_EOS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+
 <!-- ##### STRUCT GstElement ##### -->
 <para>
 
@@ -306,6 +315,7 @@ circumstances.
 
 @element: 
 @pad: 
+@name: 
 
 
 <!-- ##### FUNCTION gst_element_remove_ghost_pad ##### -->
index 6f94c6b..a2e778c 100644 (file)
@@ -1,5 +1,5 @@
 <!-- ##### SECTION Title ##### -->
-gstinfo
+GstInfo
 
 <!-- ##### SECTION Short_Description ##### -->
 info/debugging/error handling
index 0f43cb8..7749f92 100644 (file)
@@ -374,25 +374,25 @@ Destroy the pad.
 @Returns: 
 
 
-<!-- ##### FUNCTION gst_pad_add_ghost_parent ##### -->
+<!-- ##### FUNCTION gst_pad_add_ghost_pad ##### -->
 <para>
 
 </para>
 
 @pad: 
-@parent
+@ghostpad
 
 
-<!-- ##### FUNCTION gst_pad_remove_ghost_parent ##### -->
+<!-- ##### FUNCTION gst_pad_remove_ghost_pad ##### -->
 <para>
 
 </para>
 
 @pad: 
-@parent
+@ghostpad
 
 
-<!-- ##### FUNCTION gst_pad_get_ghost_parents ##### -->
+<!-- ##### FUNCTION gst_pad_get_ghost_pad_list ##### -->
 <para>
 
 </para>
@@ -486,15 +486,6 @@ Destroy the pad.
 @Returns: 
 
 
-<!-- ##### FUNCTION gst_pad_eos_func ##### -->
-<para>
-
-</para>
-
-@pad: 
-@Returns: 
-
-
 <!-- ##### FUNCTION gst_pad_handle_qos ##### -->
 <para>
 
@@ -506,10 +497,10 @@ Destroy the pad.
 
 <!-- ##### MACRO gst_pad_eos ##### -->
 <para>
-
+Call the EOS function of the pad
 </para>
 
-@pad: 
+@pad: the pad to call the eos function of.
 
 
 <!-- ##### FUNCTION gst_pad_save_thyself ##### -->
@@ -551,7 +542,7 @@ Destroy the pad.
 @pushfunc: 
 @pullfunc: 
 @pullregionfunc: 
-@ghostparents: 
+@ghostpads: 
 
 <!-- ##### MACRO GST_RPAD_DIRECTION ##### -->
 <para>
@@ -665,6 +656,16 @@ Get the real pad of this ghost pad.
 @pad: 
 @realpad: 
 
+<!-- ##### FUNCTION gst_ghost_pad_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@pad: 
+@Returns: 
+
+
 <!-- ##### TYPEDEF GstPadFactoryEntry ##### -->
 <para>
 Defines an entry for a padfactory.
index dc63860..5cd6fc2 100644 (file)
@@ -2,11 +2,12 @@
 GstParse
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Parses commandline syntax into a pipeline.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+This method allows you to create a pipeline from a command
+line syntax description.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
index c59d8f2..b7ea2ba 100644 (file)
@@ -2,12 +2,13 @@
 GstQueue
 
 <!-- ##### SECTION Short_Description ##### -->
-Simple data queue. (queue)
+Simple asynchronous data queue.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
 Simple data queue. Data is queued till max_level buffers any subsequent buffers
 sent to this filter will block until free space becomes available in the buffer.
+The queue is typically used in conjunction with a thread.
 </para>
 <para>
 You can query how many buffers are queued with the level argument.
@@ -15,6 +16,9 @@ You can query how many buffers are queued with the level argument.
 <para>
 The default queue length is set to 10.
 </para>
+<para>
+The queue blocks by default.
+</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
@@ -34,11 +38,6 @@ blocks.
 
 <!-- ##### ARG GstQueue:block ##### -->
 <para>
-
-</para>
-
-<!-- ##### ARG GstQueue:timeout ##### -->
-<para>
-
+Specify wether the queue blocks or not. 
 </para>
 
index e6b86d2..145bc02 100644 (file)
@@ -400,6 +400,12 @@ GstEsdSink
 </para>
 
 
+<!-- ##### ARG GstQueue:timeout ##### -->
+<para>
+
+</para>
+
+
 <!-- ##### FUNCTION gst_fakesrc_new ##### -->
 <para>
 
@@ -809,6 +815,14 @@ audio source. It provides data for the next element in the graph.
 
 @klass: 
 
+<!-- ##### FUNCTION gst_pad_add_ghost_parent ##### -->
+<para>
+
+</para>
+
+@pad: 
+@parent: 
+
 <!-- ##### MACRO GST_SINK_CLASS ##### -->
 <para>
 
@@ -1482,6 +1496,14 @@ Query a GstSrc for the ASYNC flag
 </para>
 
 
+<!-- ##### FUNCTION gst_pad_get_ghost_parents ##### -->
+<para>
+
+</para>
+
+@pad: 
+@Returns: 
+
 <!-- ##### STRUCT GstAudioSrc ##### -->
 <para>
 
@@ -1647,6 +1669,14 @@ Query the element for the current mime type
 @GST_PROPS_FOURCC_ID_NUM: 
 @GST_PROPS_BOOL_ID_NUM: 
 
+<!-- ##### FUNCTION gst_pad_eos_func ##### -->
+<para>
+
+</para>
+
+@pad: 
+@Returns: 
+
 <!-- ##### STRUCT GstEsdSinkClass ##### -->
 <para>
 
@@ -1992,6 +2022,14 @@ Indicates this pad is active
 </para>
 
 
+<!-- ##### FUNCTION gst_pad_remove_ghost_parent ##### -->
+<para>
+
+</para>
+
+@pad: 
+@parent: 
+
 <!-- ##### SECTION ./tmpl/GstElement.sgml:Title ##### -->
 GstElement
 
index 56d5fe1..7b4c068 100644 (file)
@@ -34,6 +34,17 @@ All GstElements can be serialized to an XML presentation and subsequently loaded
 @Returns: 
 
 
+<!-- ##### FUNCTION gst_xml_new_from_memory ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@size: 
+@root: 
+@Returns: 
+
+
 <!-- ##### FUNCTION gst_xml_write ##### -->
 <para>
 
index cd9517a..4a088a5 100644 (file)
@@ -28,9 +28,9 @@
 static void     gst_autoplug_class_init (GstAutoplugClass *klass);
 static void     gst_autoplug_init       (GstAutoplug *autoplug);
 
-static GList*  gst_autoplug_func       (gpointer src, gpointer sink, 
-                                        GstAutoplugListFunction list_function,
-                                        GstAutoplugCostFunction cost_function,
+static GList*  gst_autoplug_func       (gpointer src, gpointer sink,
+                                        GstAutoplugListFunction list_function,
+                                        GstAutoplugCostFunction cost_function,
                                         gpointer data);
 
 struct _gst_autoplug_node
@@ -71,8 +71,8 @@ gst_autoplug_class_init(GstAutoplugClass *klass) {
 static void gst_autoplug_init(GstAutoplug *autoplug) {
 }
 
-static gboolean 
-gst_autoplug_can_match (GstElementFactory *src, GstElementFactory *dest) 
+static gboolean
+gst_autoplug_can_match (GstElementFactory *src, GstElementFactory *dest)
 {
   GList *srctemps, *desttemps;
 
@@ -101,7 +101,7 @@ gst_autoplug_can_match (GstElementFactory *src, GstElementFactory *dest)
   GST_INFO (GST_CAT_AUTOPLUG_ATTEMPT,"factory \"%s\" cannot connect with factory \"%s\"", src->name, dest->name);
   return FALSE;
 }
-       
+
 static GList*
 gst_autoplug_elementfactory_get_list (gpointer data)
 {
@@ -115,8 +115,8 @@ typedef struct {
 
 #define IS_CAPS(cap) (((cap) == caps->src) || (cap) == caps->sink)
 
-static guint 
-gst_autoplug_caps_find_cost (gpointer src, gpointer dest, gpointer data) 
+static guint
+gst_autoplug_caps_find_cost (gpointer src, gpointer dest, gpointer data)
 {
   caps_struct *caps = (caps_struct *)data;
   gboolean res;
@@ -137,9 +137,9 @@ gst_autoplug_caps_find_cost (gpointer src, gpointer dest, gpointer data)
     res = gst_autoplug_can_match ((GstElementFactory *)src, (GstElementFactory *)dest);
   }
 
-  if (res) 
+  if (res)
     return 1;
-  else 
+  else
     return GST_AUTOPLUG_MAX_COST;
 }
 
@@ -154,7 +154,7 @@ gst_autoplug_caps_find_cost (gpointer src, gpointer dest, gpointer data)
  * the two caps
  */
 GList*
-gst_autoplug_caps (GstCaps *srccaps, GstCaps *sinkcaps) 
+gst_autoplug_caps (GstCaps *srccaps, GstCaps *sinkcaps)
 {
   caps_struct caps;
 
@@ -163,8 +163,8 @@ gst_autoplug_caps (GstCaps *srccaps, GstCaps *sinkcaps)
 
   GST_INFO (GST_CAT_AUTOPLUG_ATTEMPT,"autoplugging two caps structures");
 
-  return gst_autoplug_func (caps.src, caps.sink, 
-                           gst_autoplug_elementfactory_get_list, 
+  return gst_autoplug_func (caps.src, caps.sink,
+                           gst_autoplug_elementfactory_get_list,
                            gst_autoplug_caps_find_cost,
                            &caps);
 }
@@ -180,7 +180,7 @@ gst_autoplug_caps (GstCaps *srccaps, GstCaps *sinkcaps)
  * the two caps lists
  */
 GList*
-gst_autoplug_caps_list (GList *srccaps, GList *sinkcaps) 
+gst_autoplug_caps_list (GList *srccaps, GList *sinkcaps)
 {
   caps_struct caps;
 
@@ -189,8 +189,8 @@ gst_autoplug_caps_list (GList *srccaps, GList *sinkcaps)
 
   GST_INFO (GST_CAT_AUTOPLUG_ATTEMPT,"autoplugging two caps list structures");
 
-  return gst_autoplug_func (caps.src, caps.sink, 
-                           gst_autoplug_elementfactory_get_list, 
+  return gst_autoplug_func (caps.src, caps.sink,
+                           gst_autoplug_elementfactory_get_list,
                            gst_autoplug_caps_find_cost,
                            &caps);
 }
@@ -206,19 +206,17 @@ gst_autoplug_caps_list (GList *srccaps, GList *sinkcaps)
  * the two pads
  */
 GList*
-gst_autoplug_pads (GstPad *srcpad, GstPad *sinkpad) 
+gst_autoplug_pads (GstPad *srcpad, GstPad *sinkpad)
 {
   caps_struct caps;
 
-//  caps.src = srcpad->caps;
-//  caps.sink = sinkpad->caps;
   caps.src = gst_pad_get_caps_list(srcpad);
   caps.sink = gst_pad_get_caps_list(sinkpad);
 
   GST_INFO (GST_CAT_AUTOPLUG_ATTEMPT,"autoplugging two caps structures");
 
-  return gst_autoplug_func (caps.src, caps.sink, 
-                           gst_autoplug_elementfactory_get_list, 
+  return gst_autoplug_func (caps.src, caps.sink,
+                           gst_autoplug_elementfactory_get_list,
                            gst_autoplug_caps_find_cost,
                            &caps);
 }
@@ -229,7 +227,7 @@ find_factory (gst_autoplug_node *rgnNodes, gpointer factory)
 
   while (rgnNodes[i].iNode) {
     if (rgnNodes[i].iNode == factory) return i;
-    i++;  
+    i++;
   }
   return 0;
 }
@@ -239,15 +237,15 @@ construct_path (gst_autoplug_node *rgnNodes, gpointer factory)
 {
   GstElementFactory *current;
   GList *factories = NULL;
-  
+
   current = rgnNodes[find_factory(rgnNodes, factory)].iPrev;
 
   GST_INFO (GST_CAT_AUTOPLUG_ATTEMPT,"factories found in autoplugging (reversed order)");
 
   while (current != NULL)
-  { 
+  {
     gpointer next = NULL;
-    
+
     next = rgnNodes[find_factory(rgnNodes, current)].iPrev;
     if (next) {
       factories = g_list_prepend (factories, current);
@@ -259,7 +257,7 @@ construct_path (gst_autoplug_node *rgnNodes, gpointer factory)
 }
 
 static GList*
-gst_autoplug_enqueue (GList *queue, gpointer iNode, gint iDist, gpointer iPrev) 
+gst_autoplug_enqueue (GList *queue, gpointer iNode, gint iDist, gpointer iPrev)
 {
   gst_autoplug_node *node = g_malloc (sizeof (gst_autoplug_node));
 
@@ -273,13 +271,13 @@ gst_autoplug_enqueue (GList *queue, gpointer iNode, gint iDist, gpointer iPrev)
 }
 
 static GList*
-gst_autoplug_dequeue (GList *queue, gpointer *iNode, gint *iDist, gpointer *iPrev) 
+gst_autoplug_dequeue (GList *queue, gpointer *iNode, gint *iDist, gpointer *iPrev)
 {
   GList *head;
   gst_autoplug_node *node;
 
   head = g_list_first (queue);
-     
+
   if (head) {
     node = (gst_autoplug_node *)head->data;
     *iNode = node->iNode;
@@ -292,7 +290,7 @@ gst_autoplug_dequeue (GList *queue, gpointer *iNode, gint *iDist, gpointer *iPre
 }
 
 static GList*
-gst_autoplug_func (gpointer src, gpointer sink, 
+gst_autoplug_func (gpointer src, gpointer sink,
                   GstAutoplugListFunction list_function,
                   GstAutoplugCostFunction cost_function,
                   gpointer data)
@@ -305,12 +303,12 @@ gst_autoplug_func (gpointer src, gpointer sink,
   GList *elements = g_list_copy (list_function(data));
   GList *factories;
   guint num_factories;
-  
+
   elements = g_list_append (elements, sink);
   elements = g_list_append (elements, src);
-  
+
   factories = elements;
-  
+
   num_factories = g_list_length (factories);
 
   rgnNodes = g_new0 (gst_autoplug_node, num_factories+1);
@@ -338,10 +336,10 @@ gst_autoplug_func (gpointer src, gpointer sink,
     GList *factories2 = elements;
 
     queue = gst_autoplug_dequeue (queue, &iNode, &iDist, &iPrev);
-     
+
     for (i=0; i< num_factories; i++) {
       gpointer current = factories2->data;
-       
+
       iCost = cost_function (iNode, current, data);
       if (iCost != GST_AUTOPLUG_MAX_COST) {
         if((GST_AUTOPLUG_MAX_COST == rgnNodes[i].iDist) ||
index bcd9776..367a8c9 100644 (file)
@@ -510,6 +510,9 @@ gst_bin_use_cothreads (GstBin *bin,
  * @bin: #Gstbin to iterate
  *
  * Iterates over the elements in this bin.
+ *
+ * Returns: TRUE if the bin did something usefull. This value
+ *          can be used to determine it the bin is in EOS.
  */
 gboolean
 gst_bin_iterate (GstBin *bin)
index c676028..1169fae 100644 (file)
@@ -110,7 +110,7 @@ typedef enum {
   /* the element has to be scheduled as a cothread for any sanity */
   GST_ELEMENT_USE_COTHREAD,
 
-  // if this element is in EOS
+  /* if this element is in EOS */
   GST_ELEMENT_EOS,
 
   /* use some padding for future expansion */
index f1067b7..6adcff6 100644 (file)
@@ -29,8 +29,8 @@
 
 
 /***** Start with the base GstPad class *****/
-static void    gst_pad_class_init              (GstPadClass *klass);
-static void    gst_pad_init                    (GstPad *pad);
+static void    gst_pad_class_init              (GstPadClass *klass);
+static void    gst_pad_init                    (GstPad *pad);
 
 static GstObject *pad_parent_class = NULL;
 
@@ -96,6 +96,8 @@ static void   gst_real_pad_get_arg            (GtkObject *object,GtkArg *arg,guint id);
 static void    gst_real_pad_destroy            (GtkObject *object);
 
 static void    gst_pad_push_func               (GstPad *pad, GstBuffer *buf);
+static gboolean gst_pad_eos_func                (GstPad *pad);
+
 
 static GstPad *real_pad_parent_class = NULL;
 static guint gst_real_pad_signals[REAL_LAST_SIGNAL] = { 0 };
@@ -121,7 +123,7 @@ gst_real_pad_get_type(void) {
 }
 
 static void
-gst_real_pad_class_init (GstRealPadClass *klass) 
+gst_real_pad_class_init (GstRealPadClass *klass)
 {
   GtkObjectClass *gtkobject_class;
 
@@ -149,8 +151,8 @@ gst_real_pad_class_init (GstRealPadClass *klass)
   gtkobject_class->get_arg = gst_real_pad_get_arg;
 }
 
-static void 
-gst_real_pad_init (GstRealPad *pad) 
+static void
+gst_real_pad_init (GstRealPad *pad)
 {
   pad->direction = GST_PAD_UNKNOWN;
   pad->peer = NULL;
@@ -218,7 +220,7 @@ gst_real_pad_get_arg (GtkObject *object, GtkArg *arg, guint id)
  */
 GstPad*
 gst_pad_new (gchar *name,
-            GstPadDirection direction) 
+            GstPadDirection direction)
 {
   GstRealPad *pad;
 
@@ -243,7 +245,7 @@ gst_pad_new (gchar *name,
  */
 GstPad*
 gst_pad_new_from_template (GstPadTemplate *templ,
-                          gchar *name) 
+                          gchar *name)
 {
   GstPad *pad;
 
@@ -265,8 +267,8 @@ gst_pad_new_from_template (GstPadTemplate *templ,
  *
  * Returns: the direction of the pad
  */
-GstPadDirection 
-gst_pad_get_direction (GstPad *pad) 
+GstPadDirection
+gst_pad_get_direction (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, GST_PAD_UNKNOWN);
   g_return_val_if_fail (GST_IS_PAD (pad), GST_PAD_UNKNOWN);
@@ -281,9 +283,9 @@ gst_pad_get_direction (GstPad *pad)
  *
  * Set the name of a pad.
  */
-void 
-gst_pad_set_name (GstPad *pad, 
-                 const gchar *name) 
+void
+gst_pad_set_name (GstPad *pad,
+                 const gchar *name)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_PAD (pad));
@@ -303,7 +305,7 @@ gst_pad_set_name (GstPad *pad,
  * Returns: the name of the pad, don't free.
  */
 const gchar*
-gst_pad_get_name (GstPad *pad) 
+gst_pad_get_name (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, NULL);
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -319,7 +321,7 @@ gst_pad_get_name (GstPad *pad)
  * Set the given chain function for the pad.
  */
 void gst_pad_set_chain_function (GstPad *pad,
-                                GstPadChainFunction chain) 
+                                GstPadChainFunction chain)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));
@@ -336,9 +338,9 @@ void gst_pad_set_chain_function (GstPad *pad,
  *
  * Set the given get function for the pad.
  */
-void 
+void
 gst_pad_set_get_function (GstPad *pad,
-                         GstPadGetFunction get) 
+                         GstPadGetFunction get)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));
@@ -355,9 +357,9 @@ gst_pad_set_get_function (GstPad *pad,
  *
  * Set the given getregion function for the pad.
  */
-void 
+void
 gst_pad_set_getregion_function (GstPad *pad,
-                               GstPadGetRegionFunction getregion) 
+                               GstPadGetRegionFunction getregion)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));
@@ -374,13 +376,13 @@ gst_pad_set_getregion_function (GstPad *pad,
  *
  * Set the given qos function for the pad.
  */
-void 
+void
 gst_pad_set_qos_function (GstPad *pad,
-                         GstPadQoSFunction qos) 
+                         GstPadQoSFunction qos)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));
-  
+
   GST_RPAD_QOSFUNC(pad) = qos;
   GST_DEBUG (0,"qosfunc for %s:%s(@%p) at %p is set to %p\n",
              GST_DEBUG_PAD_NAME(pad),pad,&GST_RPAD_QOSFUNC(pad),qos);
@@ -393,13 +395,13 @@ gst_pad_set_qos_function (GstPad *pad,
  *
  * Set the given EOS function for the pad.
  */
-void 
+void
 gst_pad_set_eos_function (GstPad *pad,
-                         GstPadEOSFunction eos) 
+                         GstPadEOSFunction eos)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));
-  
+
   GST_RPAD_EOSFUNC(pad) = eos;
   GST_DEBUG (0,"eosfunc for %s:%s(@%p) at %p is set to %p\n",
              GST_DEBUG_PAD_NAME(pad),pad,&GST_RPAD_EOSFUNC(pad),eos);
@@ -408,7 +410,7 @@ gst_pad_set_eos_function (GstPad *pad,
 
 
 static void
-gst_pad_push_func(GstPad *pad, GstBuffer *buf) 
+gst_pad_push_func(GstPad *pad, GstBuffer *buf)
 {
   if (GST_RPAD_CHAINFUNC(GST_RPAD_PEER(pad)) != NULL) {
     GST_DEBUG (0,"calling chain function\n");
@@ -426,7 +428,7 @@ gst_pad_push_func(GstPad *pad, GstBuffer *buf)
  *
  * Pass the qos message downstream.
  */
-void 
+void
 gst_pad_handle_qos(GstPad *pad,
                   glong qos_message)
 {
@@ -462,9 +464,9 @@ gst_pad_handle_qos(GstPad *pad,
  *
  * Disconnects the source pad from the sink pad.
  */
-void 
+void
 gst_pad_disconnect (GstPad *srcpad,
-                   GstPad *sinkpad) 
+                   GstPad *sinkpad)
 {
   GstRealPad *realsrc, *realsink;
 
@@ -499,9 +501,9 @@ gst_pad_disconnect (GstPad *srcpad,
  *
  * Connects the source pad to the sink pad.
  */
-void 
+void
 gst_pad_connect (GstPad *srcpad,
-                GstPad *sinkpad) 
+                GstPad *sinkpad)
 {
   GstRealPad *realsrc, *realsink;
   GstRealPad *temppad;
@@ -528,7 +530,7 @@ gst_pad_connect (GstPad *srcpad,
   }
   g_return_if_fail((GST_RPAD_DIRECTION(realsrc) == GST_PAD_SRC) &&
                    (GST_RPAD_DIRECTION(realsink) == GST_PAD_SINK));
+
   if (!gst_pad_check_compatibility (srcpad, sinkpad)) {
     g_warning ("gstpad: connecting incompatible pads (%s:%s) and (%s:%s)\n",
                        GST_DEBUG_PAD_NAME (srcpad), GST_DEBUG_PAD_NAME (sinkpad));
@@ -551,14 +553,14 @@ gst_pad_connect (GstPad *srcpad,
 
 /**
  * gst_pad_set_parent:
- * @pad: the pad to set the parent 
+ * @pad: the pad to set the parent
  * @parent: the object to set the parent to
  *
  * Sets the parent object of a pad.
  */
-void 
+void
 gst_pad_set_parent (GstPad *pad,
-                   GstObject *parent) 
+                   GstObject *parent)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_PAD (pad));
@@ -574,14 +576,14 @@ gst_pad_set_parent (GstPad *pad,
 
 /**
  * gst_pad_add_ghost_pad:
- * @pad: the pad to set the ghost parent 
+ * @pad: the pad to set the ghost parent
  * @ghostpad: the ghost pad to add
  *
  * Add a ghost pad to a pad.
  */
-void 
+void
 gst_pad_add_ghost_pad (GstPad *pad,
-                      GstPad *ghostpad) 
+                      GstPad *ghostpad)
 {
   GstRealPad *realpad;
 
@@ -597,15 +599,15 @@ gst_pad_add_ghost_pad (GstPad *pad,
 
 
 /**
- * gst_pad_remove_ghost_parent:
- * @pad: the pad to remove the ghost parent 
+ * gst_pad_remove_ghost_pad:
+ * @pad: the pad to remove the ghost parent
  * @ghostpad: the ghost pad to remove from the pad
  *
  * Remove a ghost pad from a pad.
  */
-void 
-gst_pad_remove_ghost_parent (GstPad *pad,
-                            GstPad *ghostpad) 
+void
+gst_pad_remove_ghost_pad (GstPad *pad,
+                         GstPad *ghostpad)
 {
   GstRealPad *realpad;
 
@@ -628,7 +630,7 @@ gst_pad_remove_ghost_parent (GstPad *pad,
  * Returns: the parent object
  */
 GstObject*
-gst_pad_get_parent (GstPad *pad) 
+gst_pad_get_parent (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, NULL);
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -645,7 +647,7 @@ gst_pad_get_parent (GstPad *pad)
  * Returns: a GList of ghost pads
  */
 GList*
-gst_pad_get_ghost_parents (GstPad *pad) 
+gst_pad_get_ghost_pad_list (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, NULL);
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -660,9 +662,9 @@ gst_pad_get_ghost_parents (GstPad *pad)
  *
  * Set the capabilities of this pad.
  */
-void 
-gst_pad_set_caps_list (GstPad *pad, 
-                       GList *caps) 
+void
+gst_pad_set_caps_list (GstPad *pad,
+                       GList *caps)
 {
   g_return_if_fail (pad != NULL);
   g_return_if_fail (GST_IS_REAL_PAD (pad));            // NOTE this restriction
@@ -678,8 +680,8 @@ gst_pad_set_caps_list (GstPad *pad,
  *
  * Returns: a list of the capabilities of this pad
  */
-GList * 
-gst_pad_get_caps_list (GstPad *pad) 
+GList *
+gst_pad_get_caps_list (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, NULL);
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -696,8 +698,8 @@ gst_pad_get_caps_list (GstPad *pad)
  *
  * Returns: a capability or NULL if not found
  */
-GstCaps * 
-gst_pad_get_caps_by_name (GstPad *pad, gchar *name) 
+GstCaps *
+gst_pad_get_caps_by_name (GstPad *pad, gchar *name)
 {
   GList *caps;
 
@@ -714,7 +716,7 @@ gst_pad_get_caps_by_name (GstPad *pad, gchar *name)
 
     caps = g_list_next (caps);
   }
-  
+
   return NULL;
 }
 
@@ -728,8 +730,8 @@ gst_pad_get_caps_by_name (GstPad *pad, gchar *name)
  * Returns: TRUE if they are compatible or the capabilities
  * could not be checked
  */
-gboolean  
-gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad) 
+gboolean
+gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad)
 {
   GstRealPad *realsrc, *realsink;
 
@@ -750,7 +752,7 @@ gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad)
     }
   }
   else {
-    GST_DEBUG (0,"gstpad: could not check capabilities of pads (%s:%s) and (%s:%s)\n", 
+    GST_DEBUG (0,"gstpad: could not check capabilities of pads (%s:%s) and (%s:%s)\n",
                    GST_DEBUG_PAD_NAME (srcpad), GST_DEBUG_PAD_NAME (sinkpad));
     return TRUE;
   }
@@ -765,7 +767,7 @@ gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad)
  * Returns: the peer pad
  */
 GstPad*
-gst_pad_get_peer (GstPad *pad) 
+gst_pad_get_peer (GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, NULL);
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
@@ -774,8 +776,8 @@ gst_pad_get_peer (GstPad *pad)
 }
 
 // FIXME this needs to be rethought soon
-static void 
-gst_real_pad_destroy (GtkObject *object) 
+static void
+gst_real_pad_destroy (GtkObject *object)
 {
   GstPad *pad = GST_PAD (object);
 
@@ -796,10 +798,10 @@ gst_real_pad_destroy (GtkObject *object)
  * Read the pad definition from the XML node and connect the given pad
  * in element to a pad of an element in the hashtable.
  */
-void 
-gst_pad_load_and_connect (xmlNodePtr parent, 
-                         GstObject *element, 
-                         GHashTable *elements) 
+void
+gst_pad_load_and_connect (xmlNodePtr parent,
+                         GstObject *element,
+                         GHashTable *elements)
 {
   xmlNodePtr field = parent->childs;
   GstPad *pad = NULL, *targetpad;
@@ -849,9 +851,9 @@ cleanup:
  *
  * Returns: the xml representation of the pad
  */
-xmlNodePtr 
+xmlNodePtr
 gst_pad_save_thyself (GstPad *pad,
-                     xmlNodePtr parent) 
+                     xmlNodePtr parent)
 {
   GstRealPad *realpad;
   GstPad *peer;
@@ -884,10 +886,10 @@ gst_pad_save_thyself (GstPad *pad,
  *
  * Returns: the xml representation of the pad
  */
-xmlNodePtr 
+xmlNodePtr
 gst_pad_ghost_save_thyself (GstPad *pad,
                            GstElement *bin,
-                           xmlNodePtr parent) 
+                           xmlNodePtr parent)
 {
   xmlNodePtr self;
 
@@ -946,7 +948,7 @@ GstBuffer *gst_pad_pullregion(GstPad *pad,gulong offset,gulong size) {
 #endif
 
 /************************************************************************
- * 
+ *
  * templates
  *
  */
@@ -959,8 +961,8 @@ GstBuffer *gst_pad_pullregion(GstPad *pad,gulong offset,gulong size) {
  *
  * Returns: the new padtemplate
  */
-GstPadTemplate*   
-gst_padtemplate_new (GstPadFactory *factory) 
+GstPadTemplate*
+gst_padtemplate_new (GstPadFactory *factory)
 {
   GstPadTemplate *new;
   GstPadFactoryEntry tag;
@@ -994,7 +996,7 @@ gst_padtemplate_new (GstPadFactory *factory)
 
 /**
  * gst_padtemplate_create:
- * @name_template: the name template 
+ * @name_template: the name template
  * @direction: the direction for the template
  * @presence: the presence of the pad
  * @caps: a list of capabilities for the template
@@ -1009,7 +1011,7 @@ gst_padtemplate_create (gchar *name_template,
                        GList *caps)
 {
   GstPadTemplate *new;
-  
+
   new = g_new0 (GstPadTemplate, 1);
 
   new->name_template = name_template;
@@ -1077,7 +1079,7 @@ gst_padtemplate_save_thyself (GstPadTemplate *templ, xmlNodePtr parent)
  *
  * Returns: the new padtemplate
  */
-GstPadTemplate*   
+GstPadTemplate*
 gst_padtemplate_load_thyself (xmlNodePtr parent)
 {
   xmlNodePtr field = parent->childs;
@@ -1122,7 +1124,7 @@ gst_padtemplate_load_thyself (xmlNodePtr parent)
 }
 
 
-gboolean
+static gboolean
 gst_pad_eos_func(GstPad *pad)
 {
   GstElement *element;
@@ -1167,7 +1169,7 @@ gst_pad_eos_func(GstPad *pad)
  * Returns: TRUE if it succeeded
  */
 gboolean
-gst_pad_set_eos(GstPad *pad) 
+gst_pad_set_eos(GstPad *pad)
 {
   g_return_val_if_fail (pad != NULL, FALSE);
   g_return_val_if_fail (GST_IS_REAL_PAD(pad), FALSE);          // NOTE the restriction
@@ -1310,7 +1312,7 @@ gst_ghost_pad_new (gchar *name,
 
   // add ourselves to the real pad's list of ghostpads
   gst_pad_add_ghost_pad (pad, GST_PAD(ghostpad));
-  
+
   // FIXME need to ref the real pad here... ?
 
   GST_DEBUG(0,"created ghost pad \"%s\"\n",name);
index 61c9cf6..2b85660 100644 (file)
@@ -183,16 +183,16 @@ struct _GstGhostPadClass {
 #define GST_PAD_PEER(pad)              GST_RPAD_PEER(GST_PAD_REALIZE(pad))
 
 /* Some check functions (unused?) */
-#define GST_PAD_CONNECTED(pad)                 (GST_IS_REAL_PAD(pad) && GST_REAL_PAD(pad)->peer != NULL)
-#define GST_PAD_CAN_PULL(pad)          (GST_IS_REAL_PAD(pad) && GST_REAL_PAD(pad)->pullfunc != NULL)
+#define GST_PAD_CONNECTED(pad)         (GST_IS_REAL_PAD(pad) && GST_REAL_PAD(pad)->peer != NULL)
+#define GST_PAD_CAN_PULL(pad)          (GST_IS_REAL_PAD(pad) && GST_REAL_PAD(pad)->pullfunc != NULL)
 
 
 /***** PadTemplate *****/
-#define GST_TYPE_PADTEMPLATE                   (gst_padtemplate_get_type ())
-#define GST_PADTEMPLATE(obj)                   (GTK_CHECK_CAST ((obj), GST_TYPE_PADTEMPLATE,GstPad))
-#define GST_PADTEMPLATE_CLASS(klass)           (GTK_CHECK_CLASS_CAST ((klass), GST_TYPE_PADTEMPLATE,GstPadClass))
-#define GST_IS_PADTEMPLATE(obj)                (GTK_CHECK_TYPE ((obj), GST_TYPE_PADTEMPLATE))
-#define GST_IS_PADTEMPLATE_CLASS(obj)          (GTK_CHECK_CLASS_TYPE ((klass), GST_TYPE_PADTEMPLATE))
+#define GST_TYPE_PADTEMPLATE           (gst_padtemplate_get_type ())
+#define GST_PADTEMPLATE(obj)           (GTK_CHECK_CAST ((obj), GST_TYPE_PADTEMPLATE,GstPad))
+#define GST_PADTEMPLATE_CLASS(klass)   (GTK_CHECK_CLASS_CAST ((klass), GST_TYPE_PADTEMPLATE,GstPadClass))
+#define GST_IS_PADTEMPLATE(obj)                (GTK_CHECK_TYPE ((obj), GST_TYPE_PADTEMPLATE))
+#define GST_IS_PADTEMPLATE_CLASS(obj)  (GTK_CHECK_CLASS_TYPE ((klass), GST_TYPE_PADTEMPLATE))
 
 typedef enum {
   GST_PAD_ALWAYS,
@@ -201,12 +201,12 @@ typedef enum {
 } GstPadPresence;
 
 struct _GstPadTemplate {
-  GstObject      object;
+  GstObject      object;
 
   gchar           *name_template;
   GstPadDirection direction;
   GstPadPresence  presence;
-  GList          *caps;
+  GList                  *caps;
 };
 
 struct _GstPadTemplateClass {
@@ -221,19 +221,19 @@ struct _GstPadTemplateClass {
 typedef gpointer GstPadFactoryEntry;
 typedef GstPadFactoryEntry GstPadFactory[];
 
-#define GST_PAD_FACTORY_ALWAYS                 GINT_TO_POINTER(GST_PAD_ALWAYS)
-#define GST_PAD_FACTORY_SOMETIMES      GINT_TO_POINTER(GST_PAD_SOMETIMES)
-#define GST_PAD_FACTORY_REQUEST        GINT_TO_POINTER(GST_PAD_REQUEST)
+#define GST_PAD_FACTORY_ALWAYS         GINT_TO_POINTER(GST_PAD_ALWAYS)
+#define GST_PAD_FACTORY_SOMETIMES      GINT_TO_POINTER(GST_PAD_SOMETIMES)
+#define GST_PAD_FACTORY_REQUEST                GINT_TO_POINTER(GST_PAD_REQUEST)
 
-#define GST_PAD_FACTORY_SRC            GINT_TO_POINTER(GST_PAD_SRC)
-#define GST_PAD_FACTORY_SINK           GINT_TO_POINTER(GST_PAD_SINK)
+#define GST_PAD_FACTORY_SRC            GINT_TO_POINTER(GST_PAD_SRC)
+#define GST_PAD_FACTORY_SINK           GINT_TO_POINTER(GST_PAD_SINK)
 
-#define GST_PAD_FACTORY_CAPS(a...)     GINT_TO_POINTER(1),##a,NULL
+#define GST_PAD_FACTORY_CAPS(a...)     GINT_TO_POINTER(1),##a,NULL
 
 
-GtkType                gst_pad_get_type                (void);
-GtkType                gst_real_pad_get_type           (void);
-GtkType                gst_ghost_pad_get_type          (void);
+GtkType                        gst_pad_get_type                (void);
+GtkType                        gst_real_pad_get_type           (void);
+GtkType                        gst_ghost_pad_get_type          (void);
 
 GstPad*                        gst_pad_new                     (gchar *name, GstPadDirection direction);
 #define                gst_pad_destroy(pad)            gst_object_destroy (GST_OBJECT (pad))
@@ -288,10 +288,9 @@ GstBuffer*         gst_pad_pull_region             (GstPad *pad, gulong offset, gulong size);
 
 GstPad *               gst_pad_select                  (GstPad *nextpad, ...);
 
-#define                        gst_pad_eos(pad)        (GST_RPAD_EOSFUNC(GST_RPAD_PEER(pad))(GST_PAD(GST_RPAD_PEER(pad))))
+#define                        gst_pad_eos(pad)                (GST_RPAD_EOSFUNC(GST_RPAD_PEER(pad))(GST_PAD(GST_RPAD_PEER(pad))))
 gboolean               gst_pad_set_eos                 (GstPad *pad);
 
-gboolean               gst_pad_eos_func                (GstPad *pad);
 void                   gst_pad_handle_qos              (GstPad *pad, glong qos_message);
 
 xmlNodePtr             gst_pad_save_thyself            (GstPad *pad, xmlNodePtr parent);
index eccf5d5..2b7f028 100644 (file)
@@ -59,7 +59,7 @@ gst_parse_newpad(GstElement *element,GstPad *pad,launch_delayed_pad *peer)
 }
 */
 
-gchar *
+static gchar *
 gst_parse_unique_name(gchar *type,gst_parse_priv *priv)
 {
   gint count;
@@ -304,7 +304,18 @@ GST_DEBUG_PAD_NAME(srcpad),gst_element_get_name(GST_ELEMENT(parent)),gst_pad_get
   return i+1;
 }
 
-gint gst_parse_launch(const gchar *cmdline,GstBin *parent) {
+/**
+ * gst_parse_launch:
+ * @cmdline: the command line describing the pipeline
+ * @parent: the parent bin for the resulting pipeline
+ *
+ * Create a new pipeline based on command line syntax.
+ *
+ * Returns: ?
+ */
+gint
+gst_parse_launch(const gchar *cmdline,GstBin *parent)
+{
   gst_parse_priv priv;
   gchar **argvn;
   gint newargc;
index 6e44fd8..1d3c4a4 100644 (file)
@@ -56,7 +56,6 @@ enum {
   ARG_LEVEL,
   ARG_MAX_LEVEL,
   ARG_BLOCK,
-  ARG_TIMEOUT,
 };
 
 
@@ -115,8 +114,6 @@ gst_queue_class_init (GstQueueClass *klass)
                            GTK_ARG_READWRITE, ARG_MAX_LEVEL);
   gtk_object_add_arg_type ("GstQueue::block", GTK_TYPE_BOOL,
                            GTK_ARG_READWRITE, ARG_BLOCK);
-  gtk_object_add_arg_type ("GstQueue::timeout", GTK_TYPE_INT,
-                           GTK_ARG_READWRITE, ARG_TIMEOUT);
 
   gtkobject_class->set_arg = gst_queue_set_arg;
   gtkobject_class->get_arg = gst_queue_get_arg;
@@ -351,8 +348,6 @@ gst_queue_set_arg (GtkObject *object, GtkArg *arg, guint id)
     case ARG_BLOCK:
       queue->block = GTK_VALUE_BOOL (*arg);
       break;
-    case ARG_TIMEOUT:
-      break;
     default:
       break;
   }
@@ -378,8 +373,6 @@ gst_queue_get_arg (GtkObject *object, GtkArg *arg, guint id)
     case ARG_BLOCK:
       GTK_VALUE_BOOL (*arg) = queue->block;
       break;
-    case ARG_TIMEOUT:
-      break;
     default:
       arg->type = GTK_TYPE_INVALID;
       break;
index 1e80a81..43ee46b 100644 (file)
@@ -64,7 +64,6 @@ static void                   gst_thread_restore_thyself      (GstElement *element,xmlNodePtr parent,
 
 static void                    gst_thread_signal_thread        (GstThread *thread);
 static void                    gst_thread_wait_thread          (GstThread *thread);
-static void                    gst_thread_create_plan_dummy    (GstBin *bin);
 static void                    gst_thread_schedule_dummy       (GstBin *bin);
 
 static void*                   gst_thread_main_loop            (void *arg);
@@ -114,7 +113,6 @@ gst_thread_class_init (GstThreadClass *klass)
   gstelement_class->save_thyself =     gst_thread_save_thyself;
   gstelement_class->restore_thyself =  gst_thread_restore_thyself;
 
-  //gstbin_class->create_plan = gst_thread_create_plan_dummy;
   gstbin_class->schedule = gst_thread_schedule_dummy;
 
   gtkobject_class->set_arg = gst_thread_set_arg;
@@ -148,15 +146,6 @@ gst_thread_schedule_dummy (GstBin *bin)
 }
 
 static void
-gst_thread_create_plan_dummy (GstBin *bin)
-{
-  g_return_if_fail (GST_IS_THREAD (bin));
-
-  if (!GST_FLAG_IS_SET (GST_THREAD (bin), GST_THREAD_STATE_SPINNING))
-    GST_INFO (GST_CAT_THREAD,"gstthread: create plan delayed until thread starts");
-}
-
-static void
 gst_thread_set_arg (GtkObject *object,
                    GtkArg *arg,
                    guint id)
index 6fba08b..bceee0f 100644 (file)
 #include "gstbin.h"
 
 
-static void    gst_xml_class_init              (GstXMLClass *klass);
+static void    gst_xml_class_init              (GstXMLClass *klass);
 static void    gst_xml_init                    (GstXML *xml);
 
 static GstObjectClass *parent_class = NULL;
 
-GtkType 
-gst_xml_get_type(void) 
+GtkType
+gst_xml_get_type(void)
 {
   static GtkType xml_type = 0;
 
@@ -53,13 +53,13 @@ gst_xml_get_type(void)
 }
 
 static void
-gst_xml_class_init (GstXMLClass *klass) 
+gst_xml_class_init (GstXMLClass *klass)
 {
   parent_class = gtk_type_class (GST_TYPE_OBJECT);
 }
 
-static void 
-gst_xml_init(GstXML *xml) 
+static void
+gst_xml_init(GstXML *xml)
 {
 }
 
@@ -71,8 +71,8 @@ gst_xml_init(GstXML *xml)
  *
  * Returns: a pointer to an XML document
  */
-xmlDocPtr 
-gst_xml_write (GstElement *element) 
+xmlDocPtr
+gst_xml_write (GstElement *element)
 {
   xmlDocPtr doc;
 
@@ -84,38 +84,14 @@ gst_xml_write (GstElement *element)
   return doc;
 }
 
-/**
- * gst_xml_new:
- * @fname: The filename with the xml description
- * @root: The name of the root object to build
- *
- * Creates a new GstXML object (and the corresponding elements) from 
- * the XML file fname. Optionally it will only build the element from 
- * the element node root (if it is not NULL). This feature is useful 
- * if you only want to build a specific element from an XML file
- * but not the pipeline it is embedded in. Note also that the XML parse 
- * tree is cached to speed up creating another GstXML object for 
- * the same file
- *
- * Returns: a pointer to a new GstElement
- */
-GstXML*
-gst_xml_new (const guchar *fname, const guchar *root) 
+static GstXML*
+gst_xml_real_parse (xmlDocPtr doc, const guchar *root)
 {
-  xmlDocPtr doc;
-  xmlNodePtr field;
   GstXML *xml;
+  xmlNodePtr field;
 
-  g_return_val_if_fail(fname != NULL, NULL);
-       
-  doc = xmlParseFile(fname);
-
-  if (!doc) {
-    g_print("gstxml: XML file \"%s\" could not be read\n", fname);
-    return NULL;
-  }
   if (strcmp(doc->xmlRootNode->name, "GST-Pipeline")) {
-    g_print("gstxml: XML file \"%s\" is in wrong format\n", fname);
+    g_warning("gstxml: XML file is in wrong format\n");
     return NULL;
   }
 
@@ -124,15 +100,15 @@ gst_xml_new (const guchar *fname, const guchar *root)
   xml->topelements = NULL;
 
   field = doc->xmlRootNode->xmlChildrenNode;
-  
+
   while (field) {
     if (!strcmp(field->name, "element")) {
       GstElement *element;
-      
+
       xml->elements = g_hash_table_new(g_str_hash, g_str_equal);
 
       element = gst_element_load_thyself(field, xml->elements);
-      
+
       g_hash_table_destroy (xml->elements);
 
       xml->topelements = g_list_prepend (xml->topelements, element);
@@ -146,6 +122,61 @@ gst_xml_new (const guchar *fname, const guchar *root)
 }
 
 /**
+ * gst_xml_new:
+ * @fname: The filename with the xml description
+ * @root: The name of the root object to build
+ *
+ * Creates a new GstXML object (and the corresponding elements) from
+ * the XML file fname. Optionally it will only build the element from
+ * the element node root (if it is not NULL). This feature is useful
+ * if you only want to build a specific element from an XML file
+ * but not the pipeline it is embedded in. Note also that the XML parse
+ * tree is cached to speed up creating another GstXML object for
+ * the same file
+ *
+ * Returns: a pointer to a new GstXML object
+ */
+GstXML*
+gst_xml_new (const guchar *fname, const guchar *root)
+{
+  xmlDocPtr doc;
+
+  g_return_val_if_fail(fname != NULL, NULL);
+
+  doc = xmlParseFile(fname);
+
+  if (!doc) {
+    g_warning("gstxml: XML file \"%s\" could not be read\n", fname);
+    return NULL;
+  }
+
+  return gst_xml_real_parse (doc, root);
+}
+
+/**
+ * gst_xml_new_from_memory:
+ * @buffer: a pointer to the in memory XML buffer
+ * @size: the size of the buffer
+ * @root: the name of the root objects to build
+ *
+ * Creates a new GstXML object (and the corresponding elements) from
+ * an in memory XML buffer.
+ *
+ * Returns: a pointer to a new GstXML object
+ */
+GstXML*
+gst_xml_new_from_memory (guchar *buffer, guint size, const gchar *root)
+{
+  xmlDocPtr doc;
+
+  g_return_val_if_fail(buffer != NULL, NULL);
+
+  doc = xmlParseMemory (buffer, size);
+
+  return gst_xml_real_parse (doc, root);
+}
+
+/**
  * gst_xml_get_topelements:
  * @xml: The GstXML to get the elements from
  *
@@ -154,7 +185,7 @@ gst_xml_new (const guchar *fname, const guchar *root)
  * Returns: a GList of elements
  */
 GList*
-gst_xml_get_topelements (GstXML *xml) 
+gst_xml_get_topelements (GstXML *xml)
 {
   g_return_val_if_fail (xml != NULL, NULL);
 
@@ -166,14 +197,14 @@ gst_xml_get_topelements (GstXML *xml)
  * @xml: The GstXML to get the element from
  * @name: The name of element to retreive
  *
- * This function is used to get a pointer to the GstElement corresponding 
- * to name in the pipeline description. You would use this if you have 
+ * This function is used to get a pointer to the GstElement corresponding
+ * to name in the pipeline description. You would use this if you have
  * to do anything to the element after loading.
  *
  * Returns: a pointer to a new GstElement
  */
 GstElement*
-gst_xml_get_element (GstXML *xml, const guchar *name) 
+gst_xml_get_element (GstXML *xml, const guchar *name)
 {
   GstElement *element;
   GList *topelements;
@@ -195,7 +226,7 @@ gst_xml_get_element (GstXML *xml, const guchar *name)
       if (GST_IS_BIN (top)) {
         element = gst_bin_get_by_name (GST_BIN (top), name);
 
-       if (element) 
+       if (element)
           return element;
       }
     }
index 491f4e6..712ba25 100644 (file)
@@ -66,16 +66,18 @@ struct _GstXMLClass {
   GtkObjectClass parent_class;
 };
 
-GtkType        gst_xml_get_type        (void);
+GtkType                gst_xml_get_type        (void);
 
 
 /* create an XML document out of a pipeline */
-xmlDocPtr      gst_xml_write           (GstElement *element);
+xmlDocPtr      gst_xml_write           (GstElement *element);
 
 GstXML*                gst_xml_new             (const guchar *fname, const guchar *root);
+GstXML*                gst_xml_new_from_memory (guchar *buffer, guint size, const gchar *root);
+
 
 GstElement*    gst_xml_get_element     (GstXML *xml, const guchar *name);
-GList*                 gst_xml_get_topelements (GstXML *xml);
+GList*         gst_xml_get_topelements (GstXML *xml);
 
 #ifdef __cplusplus
 }
index 6e44fd8..1d3c4a4 100644 (file)
@@ -56,7 +56,6 @@ enum {
   ARG_LEVEL,
   ARG_MAX_LEVEL,
   ARG_BLOCK,
-  ARG_TIMEOUT,
 };
 
 
@@ -115,8 +114,6 @@ gst_queue_class_init (GstQueueClass *klass)
                            GTK_ARG_READWRITE, ARG_MAX_LEVEL);
   gtk_object_add_arg_type ("GstQueue::block", GTK_TYPE_BOOL,
                            GTK_ARG_READWRITE, ARG_BLOCK);
-  gtk_object_add_arg_type ("GstQueue::timeout", GTK_TYPE_INT,
-                           GTK_ARG_READWRITE, ARG_TIMEOUT);
 
   gtkobject_class->set_arg = gst_queue_set_arg;
   gtkobject_class->get_arg = gst_queue_get_arg;
@@ -351,8 +348,6 @@ gst_queue_set_arg (GtkObject *object, GtkArg *arg, guint id)
     case ARG_BLOCK:
       queue->block = GTK_VALUE_BOOL (*arg);
       break;
-    case ARG_TIMEOUT:
-      break;
     default:
       break;
   }
@@ -378,8 +373,6 @@ gst_queue_get_arg (GtkObject *object, GtkArg *arg, guint id)
     case ARG_BLOCK:
       GTK_VALUE_BOOL (*arg) = queue->block;
       break;
-    case ARG_TIMEOUT:
-      break;
     default:
       arg->type = GTK_TYPE_INVALID;
       break;
index d8ba1a2..da1876c 100644 (file)
@@ -216,10 +216,7 @@ gint print_element_info(GstElementFactory *factory) {
       if (realpad->qosfunc)
         printf("      Has qosfunc(): %s\n",GST_DEBUG_FUNCPTR_NAME(realpad->qosfunc));
       if (realpad->eosfunc) {
-        if (realpad->eosfunc == gst_pad_eos_func)
-          printf("      Has default eosfunc() gst_pad_eos_func()\n");
-        else
-          printf("      Has eosfunc(): %s\n",GST_DEBUG_FUNCPTR_NAME(realpad->eosfunc));
+        printf("      Has eosfunc(): %s\n",GST_DEBUG_FUNCPTR_NAME(realpad->eosfunc));
       }
 
       if (pad->padtemplate)