2002-01-15 00:41:22 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
GstBin
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
2004-03-25 04:20:33 +00:00
|
|
|
Base class for elements that contain other elements
|
2002-01-15 00:41:22 +00:00
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
|
|
|
GstBin is the simplest of the container elements, allowing elements to
|
|
|
|
become children of itself. Pads from the child elements can be ghosted to
|
|
|
|
the bin, making the bin itself look transparently like any other element,
|
|
|
|
allowing for deep nesting of predefined sub-pipelines.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
A new GstBin is created with gst_bin_new(). Use a #GstPipeline instead if you want
|
|
|
|
to create a toplevel bin because a normal bin doesn't have a scheduler of its
|
|
|
|
own.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
After the bin has been created you will typically add elements to it with
|
|
|
|
gst_bin_add(). You can remove elements with gst_bin_remove().
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
An element can be retrieved from a bin with gst_bin_get_by_name(), using the
|
|
|
|
elements name. gst_bin_get_by_name_recurse_up() is mainly used for internal
|
|
|
|
purposes and will query the parent bins when the element is not found in the
|
|
|
|
current bin.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The list of elements in a bin can be retrieved with gst_bin_get_list().
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
After the bin has been set to the PLAYING state (with gst_element_set_state()),
|
|
|
|
gst_bin_iterate() is used to process the elements in the bin.
|
|
|
|
</para>
|
|
|
|
<para>
|
2003-01-02 18:56:09 +00:00
|
|
|
The "element_added" signal is fired whenever a new element is added to the bin.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The "element_removed" signal is fired whenever an element is removed from the bin.
|
2002-01-15 00:41:22 +00:00
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
gst_bin_destroy() is used to destroy the bin.
|
|
|
|
</para>
|
2002-06-12 22:27:18 +00:00
|
|
|
<para>
|
|
|
|
To control the selection of the clock in a bin, you can use the following methods:
|
|
|
|
gst_bin_auto_clock() to let the bin select a clock automatically, gst_bin_get_clock() to
|
|
|
|
get the current clock of the bin and gst_bin_use_clock() to specify a clock explicitly.
|
2002-12-19 20:38:51 +00:00
|
|
|
Note that the default behaviour is to automatically select a clock from one of the
|
|
|
|
clock providers in the bin.
|
2002-06-12 22:27:18 +00:00
|
|
|
</para>
|
2002-01-15 00:41:22 +00:00
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2004-07-21 11:32:09 +00:00
|
|
|
<!-- ##### STRUCT GstBin ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2005-03-29 10:55:39 +00:00
|
|
|
@numchildren:
|
|
|
|
@children:
|
|
|
|
@children_cookie:
|
2005-07-07 11:09:32 +00:00
|
|
|
@child_bus:
|
|
|
|
@eosed:
|
2004-07-21 11:32:09 +00:00
|
|
|
|
|
|
|
<!-- ##### SIGNAL GstBin::element-added ##### -->
|
|
|
|
<para>
|
2005-06-24 18:16:14 +00:00
|
|
|
Will be emitted if a new element was removed/added to this bin.
|
2004-07-21 11:32:09 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
@gstbin: the object which received the signal.
|
2005-06-24 18:16:14 +00:00
|
|
|
@arg1: the element that was added to the bin.
|
2004-07-21 11:32:09 +00:00
|
|
|
|
|
|
|
<!-- ##### SIGNAL GstBin::element-removed ##### -->
|
|
|
|
<para>
|
2005-06-24 18:16:14 +00:00
|
|
|
Will be emitted if an element was removed from this bin.
|
2004-07-21 11:32:09 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
@gstbin: the object which received the signal.
|
2005-06-24 18:16:14 +00:00
|
|
|
@arg1: the element that was removed from the bin.
|
2004-07-21 11:32:09 +00:00
|
|
|
|
2005-06-27 08:16:51 +00:00
|
|
|
<!-- ##### STRUCT GstBinClass ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@parent_class:
|
|
|
|
@add_element:
|
|
|
|
@remove_element:
|
|
|
|
|
2004-03-25 04:20:33 +00:00
|
|
|
<!-- ##### ENUM GstBinFlags ##### -->
|
|
|
|
<para>
|
2005-01-24 17:04:08 +00:00
|
|
|
|
2004-03-25 04:20:33 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
@GST_BIN_FLAG_LAST:
|
|
|
|
|
2002-01-15 00:41:22 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_new ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@name:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_bin_add ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@element:
|
2005-03-29 10:55:39 +00:00
|
|
|
@Returns:
|
2002-01-15 00:41:22 +00:00
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_remove ##### -->
|
2002-03-31 14:00:33 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
2005-06-19 10:54:12 +00:00
|
|
|
@element:
|
|
|
|
@Returns:
|
2002-03-31 14:00:33 +00:00
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_get_by_name ##### -->
|
2002-01-15 00:41:22 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
2005-06-19 10:54:12 +00:00
|
|
|
@name:
|
2005-03-29 10:55:39 +00:00
|
|
|
@Returns:
|
2002-01-15 00:41:22 +00:00
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_get_by_name_recurse_up ##### -->
|
2003-02-11 20:38:41 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
2005-06-19 10:54:12 +00:00
|
|
|
@name:
|
|
|
|
@Returns:
|
2003-02-11 20:38:41 +00:00
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_get_by_interface ##### -->
|
2002-01-15 00:41:22 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
2005-06-19 10:54:12 +00:00
|
|
|
@interface:
|
2002-01-15 00:41:22 +00:00
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_iterate_elements ##### -->
|
2002-01-15 00:41:22 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_iterate_recurse ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_bin_iterate_sinks ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_bin_iterate_all_by_interface ##### -->
|
2002-01-15 00:41:22 +00:00
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
2004-03-25 04:20:33 +00:00
|
|
|
@interface:
|
2002-01-15 00:41:22 +00:00
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2005-06-19 10:54:12 +00:00
|
|
|
<!-- ##### FUNCTION gst_bin_add_many ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@element_1:
|
|
|
|
@Varargs:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_bin_remove_many ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@bin:
|
|
|
|
@element_1:
|
|
|
|
@Varargs:
|
|
|
|
|
|
|
|
|