docs/: Fix docs some more.
authorWim Taymans <wim.taymans@gmail.com>
Fri, 1 Sep 2006 10:26:52 +0000 (10:26 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 1 Sep 2006 10:26:52 +0000 (10:26 +0000)
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* docs/plugins/gstreamer-plugins-sections.txt:
Fix docs some more.
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
(gst_collect_pads_event):
* libs/gst/base/gstcollectpads.h:
Documentation updates.
Free queued buffer when removing a pad.

ChangeLog
docs/libs/gstreamer-libs-sections.txt
docs/plugins/gstreamer-plugins-sections.txt
libs/gst/base/gstcollectpads.c
libs/gst/base/gstcollectpads.h

index 2649607..d2db43b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2006-09-01  Wim Taymans  <wim@fluendo.com>
+
+       * docs/libs/gstreamer-libs-sections.txt:
+       * docs/plugins/gstreamer-plugins-sections.txt:
+       Fix docs some more.
+
+       * libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
+       (gst_collect_pads_event):
+       * libs/gst/base/gstcollectpads.h:
+       Documentation updates.
+       Free queued buffer when removing a pad.
+
 2006-08-31  Michael Smith  <msmith@fluendo.com>
 
        * gst/gstutils.c: (gst_element_link_pads),
index d607a8c..30720f8 100644 (file)
@@ -254,9 +254,6 @@ gst_collect_pads_pop
 gst_collect_pads_available
 gst_collect_pads_read
 gst_collect_pads_flush
-GST_COLLECT_PADS_PAD_LOCK
-GST_COLLECT_PADS_PAD_UNLOCK
-GST_COLLECT_PADS_GET_PAD_LOCK
 <SUBSECTION Standard>
 GstCollectPadsClass
 GST_COLLECT_PADS
@@ -267,6 +264,9 @@ GST_IS_COLLECT_PADS_CLASS
 GST_COLLECT_PADS_GET_CLASS
 <SUBSECTION Private>
 gst_collect_pads_get_type
+GST_COLLECT_PADS_GET_PAD_LOCK
+GST_COLLECT_PADS_PAD_LOCK
+GST_COLLECT_PADS_PAD_UNLOCK
 GST_COLLECT_PADS_BROADCAST
 GST_COLLECT_PADS_GET_COND
 GST_COLLECT_PADS_SIGNAL
index c750c93..de43524 100644 (file)
@@ -26,6 +26,7 @@ GstFakeSinkStateError
 <SUBSECTION Standard>
 GstFakeSinkClass
 GST_FAKE_SINK
+GST_FAKE_SINK_CAST
 GST_IS_FAKE_SINK
 GST_TYPE_FAKE_SINK
 GST_FAKE_SINK_CLASS
index b8c36a9..a4bedd7 100644 (file)
@@ -196,7 +196,7 @@ gst_collect_pads_set_function (GstCollectPads * pads,
  * gst_collect_pads_add_pad:
  * @pads: the collectspads to use
  * @pad: the pad to add
- * @size: the size of the returned GstCollectData structure
+ * @size: the size of the returned #GstCollectData structure
  *
  * Add a pad to the collection of collect pads. The pad has to be
  * a sinkpad. The refcount of the pad is incremented. Use
@@ -259,15 +259,18 @@ find_pad (GstCollectData * data, GstPad * pad)
  * @pads: the collectspads to use
  * @pad: the pad to remove
  *
- * Remove a pad from the collection of collect pads.
+ * Remove a pad from the collection of collect pads. This function will also
+ * free the #GstCollectData and all the resources that were allocated with 
+ * gst_collect_pads_add_pad().
  *
- * Returns: TRUE if the pad could be removed.
+ * Returns: %TRUE if the pad could be removed.
  *
  * MT safe.
  */
 gboolean
 gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
 {
+  GstCollectData *data;
   GSList *list;
 
   g_return_val_if_fail (pads != NULL, FALSE);
@@ -284,7 +287,10 @@ gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
   if (!list)
     goto unknown_pad;
 
-  GST_DEBUG ("found pad %s:%s at %p", GST_DEBUG_PAD_NAME (pad), list->data);
+  data = (GstCollectData *) list->data;
+
+  GST_DEBUG ("found pad %s:%s at %p", GST_DEBUG_PAD_NAME (pad), data);
+
   /* clear the stuff we configured */
   gst_pad_set_chain_function (pad, NULL);
   gst_pad_set_event_function (pad, NULL);
@@ -301,11 +307,17 @@ gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
       pads->data = g_slist_delete_link (pads->data, dlist);
     }
   }
-  gst_object_unref (pad);
-  g_free (list->data);
+  /* remove from the pad list */
   pads->abidata.ABI.pad_list =
       g_slist_delete_link (pads->abidata.ABI.pad_list, list);
   pads->abidata.ABI.pad_cookie++;
+
+  /* clean and free the collect data */
+  gst_object_unref (data->pad);
+  if (data->buffer)
+    gst_buffer_unref (data->buffer);
+  g_free (data);
+
   /* signal waiters because something changed */
   GST_COLLECT_PADS_BROADCAST (pads);
   GST_COLLECT_PADS_PAD_UNLOCK (pads);
@@ -329,7 +341,7 @@ unknown_pad:
  *
  * This function is currently not implemented.
  *
- * Returns: TRUE if the pad is active.
+ * Returns: %TRUE if the pad is active.
  *
  * MT safe.
  */
@@ -351,11 +363,11 @@ gst_collect_pads_is_active (GstCollectPads * pads, GstPad * pad)
  * @pads: the collectspads to use
  *
  * Collect data on all pads. This function is usually called
- * from a GstTask function in an element. 
+ * from a #GstTask function in an element. 
  *
  * This function is currently not implemented.
  *
- * Returns: GstFlowReturn of the operation.
+ * Returns: #GstFlowReturn of the operation.
  *
  * MT safe.
  */
@@ -381,7 +393,7 @@ gst_collect_pads_collect (GstCollectPads * pads)
  *
  * This function is currently not implemented.
  *
- * Returns: GstFlowReturn of the operation.
+ * Returns: #GstFlowReturn of the operation.
  *
  * MT safe.
  */
@@ -824,7 +836,7 @@ gst_collect_pads_check_pads (GstCollectPads * pads)
  *
  * Should be called with LOCK.
  *
- * Returns: The GstFlowReturn of collection.
+ * Returns: The #GstFlowReturn of collection.
  */
 static GstFlowReturn
 gst_collect_pads_check_collected (GstCollectPads * pads)
@@ -970,14 +982,14 @@ gst_collect_pads_event (GstPad * pad, GstEvent * event)
        * accumulated and this is certainly not what we want. */
       gst_event_unref (event);
       /* FIXME: collect-pads based elements need to create their own newsegment
-         event (and only one really)
-         (a) make the segment part of the GstCollectData structure of each pad,
-         so you can just check that once you have a buffer queued on that pad,
-         (b) you can override a pad's event function with your own,
-         catch the newsegment event and then pass it on to the original
-         gstcollectpads event function
-         (that's what avimux does for something IIRC)
-         see #340060
+       * event (and only one really)
+       * (a) make the segment part of the GstCollectData structure of each pad,
+       * so you can just check that once you have a buffer queued on that pad,
+       * (b) you can override a pad's event function with your own,
+       * catch the newsegment event and then pass it on to the original
+       * gstcollectpads event function
+       * (that's what avimux does for something IIRC)
+       * see #340060
        */
       goto done;
     }
index 813a9ef..2f42072 100644 (file)
@@ -75,7 +75,7 @@ struct _GstCollectData
  *
  * A function that will be called when all pads have received data.
  *
- * Returns: GST_FLOW_OK for success
+ * Returns: #GST_FLOW_OK for success
  */
 typedef GstFlowReturn (*GstCollectPadsFunction) (GstCollectPads *pads, gpointer user_data);