mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-05-04 15:34:50 +00:00
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:
parent
edf541e722
commit
6796aaa385
3 changed files with 37 additions and 37 deletions
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
-------
|
||||
|
||||
|
|
Loading…
Reference in a new issue