GstBin
------

GstBin is a container element for other GstElements. This makes it possible
to group elements together so that they can be treated as one single 
GstElement.


Add/removing elements
---------------------

The basic functionality of a bin is to add and remove GstElements to/from it.
gst_bin_add() and gst_bin_remove() perform these operations respectively.

The bin maintains a parent-child relationship with its elements (see part-
relations.txt).


Retrieving elements
-------------------

GstBin provides a number of functions to retrieve one or more children from
itself. A few examples of the provided functions:

gst_bin_get_by_name() retrieves an element by name.

gst_bin_iterate_elements() returns an iterator to all the children.


element management
------------------

The most important function of the GstBin is to distribute all GstElement
operations on itself to all of its children. This includes:

 - state changes
 - index get/set
 - clock gst/set
 - bus set/get
 - scheduler set/get

The state change distribution is the most complex and is explained in 
part-states.txt.


Subclassing
-----------

Subclasses of GstBin are free to implement their own add/remove implementations.
It is a good idea to update the GList of children so that the _iterate() functions
can still be used.