docs/design/: Update design notes to reflect the movement of responsibility for bus handling from GstPipeline to

Original commit message from CVS:

* docs/design/part-gstbin.txt:
* docs/design/part-gstpipeline.txt:
Update design notes to reflect the movement of
responsibility for bus handling from GstPipeline to
GstBin
This commit is contained in:
Jan Schmidt 2005-07-06 17:17:59 +00:00
parent edf541e722
commit 6796aaa385
3 changed files with 37 additions and 37 deletions

View file

@ -1,3 +1,11 @@
2005-07-07 Jan Schmidt <thaytan@mad.scientist.com>
* docs/design/part-gstbin.txt:
* docs/design/part-gstpipeline.txt:
Update design notes to reflect the movement of
responsibility for bus handling from GstPipeline to
GstBin
2005-07-07 Jan Schmidt <thaytan@mad.scientist.com>
* configure.ac:

View file

@ -3,8 +3,8 @@ 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.
GstElement. A GstBin provides a GstBus for the children and collates messages
from them.
Add/removing elements
---------------------
@ -36,12 +36,37 @@ 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.
GstBus
------
The GstBin creates a GstBus for its children and distributes it when child
elements are added to the bin. The bin attaches a sync handler to receive
messages from children. The bus for receiving messages from children is
distinct from the bin's own externally-visible GstBus.
Messages received from children are forwarded intact onto the bin's
external message bus, except for EOS which is handled specially.
The application can retrieve the external GstBus and integrate it in the
mainloop or it can just _pop() messages off in its own thread.
EOS
---
The sink elements will post an EOS event on the bus when they reach EOS. The
EOS message is only posted to the bus when the element is in PLAYING.
The bin collects all EOS messages and forwards it to the application as
soon as all the sinks have posted an EOS.
The list of queued EOS messages is cleared when the bin goes to PAUSED
again. This means that all elements should repost the EOS message when going
to PLAYING again.
Subclassing
-----------
@ -50,4 +75,3 @@ 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.

View file

@ -2,11 +2,7 @@ GstPipeline
-----------
A GstPipeline is usually a toplevel bin an provides all of its
children with a clock and a bus.
The GstPipeline will also collect EOS messages from its children and
will forward the EOS message to the application when all of the
sinks are in EOS.
children with a clock.
The pipeline also calculates the stream time based on the selected
clock (see part-clocks.txt).
@ -14,19 +10,6 @@ clock (see part-clocks.txt).
The pipeline manages the seek operation for the application.
GstBus
------
The pipeline creates a GstBus and attaches a sync handler to receive
the EOS events.
Since the pipeline subclasses GstBin, all of its children will receive
the same bus when added to the Gstbin.
The application can retrieve the GstBus and integrate it in the
mainloop or it can just _pop() messages off in its own thread.
State changes
-------------
@ -73,21 +56,6 @@ possible.
The _auto_clock() method removes the fixed clock and reactivates the auto-
matic clock selection algorithm described above.
EOS
---
The sink elements will post an EOS event on the bus when they reach EOS. The
EOS message is only posted to the bus when the element is in PLAYING.
The pipeline collects all EOS messages and forwards it to the application as
soon as all the sinks have posted an EOS.
The list of queued EOS messages is cleared when the pipeline goes to PAUSED
again. This means that all elements should repost the EOS message when going
to PLAYING again.
Seeking
-------