gstinfo: Use free instead of g_free
[platform/upstream/gstreamer.git] / gst / gstbin.h
index 809bb79..237a1b1 100644 (file)
@@ -42,6 +42,9 @@ G_BEGIN_DECLS
  * GstBinFlags:
  * @GST_BIN_FLAG_NO_RESYNC: don't resync a state change when elements are
  *             added or linked in the bin (Since 1.0.5)
+ * @GST_BIN_FLAG_STREAMS_AWARE: Indicates whether the bin can handle elements
+ *             that add/remove source pads at any point in time without
+ *             first posting a no-more-pads signal (Since 1.10)
  * @GST_BIN_FLAG_LAST: the last enum in the series of flags for bins.
  * Derived classes can use this as first value in a list of flags.
  *
@@ -51,6 +54,7 @@ G_BEGIN_DECLS
  */
 typedef enum {
   GST_BIN_FLAG_NO_RESYNC       = (GST_ELEMENT_FLAG_LAST << 0),
+  GST_BIN_FLAG_STREAMS_AWARE   = (GST_ELEMENT_FLAG_LAST << 1),
   /* padding */
   GST_BIN_FLAG_LAST            = (GST_ELEMENT_FLAG_LAST << 5)
 } GstBinFlags;
@@ -140,6 +144,10 @@ struct _GstBin {
  * @add_element: method to add an element to a bin
  * @remove_element: method to remove an element from a bin
  * @handle_message: method to handle a message from the children
+ * @deep_element_added: method called when an element was added somewhere
+ *     in the bin hierarchy
+ * @deep_element_removed: method called when an element was removed somewhere
+ *     in the bin hierarchy
  *
  * Subclasses can override the @add_element and @remove_element to
  * update the list of children in the bin.
@@ -148,7 +156,7 @@ struct _GstBin {
  * message handling.  @handle_message takes ownership of the message, just like
  * #gst_element_post_message.
  *
- * The @element_added_deep vfunc will be called when a new element has been
+ * The @deep_element_added vfunc will be called when a new element has been
  * added to any bin inside this bin, so it will also be called if a new child
  * was added to a sub-bin of this bin. #GstBin implementations that override
  * this message should chain up to the parent class implementation so the
@@ -184,30 +192,63 @@ struct _GstBinClass {
   gpointer _gst_reserved[GST_PADDING-2];
 };
 
+GST_EXPORT
 GType          gst_bin_get_type                (void);
+
+GST_EXPORT
 GstElement*    gst_bin_new                     (const gchar *name);
 
 /* add and remove elements from the bin */
+
+GST_EXPORT
 gboolean       gst_bin_add                     (GstBin *bin, GstElement *element);
+
+GST_EXPORT
 gboolean       gst_bin_remove                  (GstBin *bin, GstElement *element);
 
 /* retrieve a single child */
+
+GST_EXPORT
 GstElement*    gst_bin_get_by_name              (GstBin *bin, const gchar *name);
+
+GST_EXPORT
 GstElement*    gst_bin_get_by_name_recurse_up   (GstBin *bin, const gchar *name);
+
+GST_EXPORT
 GstElement*    gst_bin_get_by_interface         (GstBin *bin, GType iface);
 
 /* retrieve multiple children */
+
+GST_EXPORT
 GstIterator*    gst_bin_iterate_elements        (GstBin *bin);
+
+GST_EXPORT
 GstIterator*    gst_bin_iterate_sorted          (GstBin *bin);
+
+GST_EXPORT
 GstIterator*    gst_bin_iterate_recurse                 (GstBin *bin);
 
+GST_EXPORT
 GstIterator*   gst_bin_iterate_sinks            (GstBin *bin);
+
+GST_EXPORT
 GstIterator*   gst_bin_iterate_sources          (GstBin *bin);
+
+GST_EXPORT
 GstIterator*   gst_bin_iterate_all_by_interface (GstBin *bin, GType iface);
 
 /* latency */
+
+GST_EXPORT
 gboolean        gst_bin_recalculate_latency      (GstBin * bin);
 
+/* set and get suppressed flags */
+
+GST_EXPORT
+void            gst_bin_set_suppressed_flags (GstBin * bin, GstElementFlags flags);
+
+GST_EXPORT
+GstElementFlags gst_bin_get_suppressed_flags (GstBin * bin);
 
 #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstBin, gst_object_unref)