From: <th...@fr...> - 2005-07-06 17:18:14
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: thaytan Date: Wed Jul 06 2005 10:18:11 PDT Log message: * 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 Modified files: . : ChangeLog docs/design : part-gstbin.txt part-gstpipeline.txt Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1230&r2=1.1231 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/docs/design/part-gstbin.txt.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/docs/design/part-gstpipeline.txt.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1230 retrieving revision 1.1231 diff -u -d -r1.1230 -r1.1231 --- ChangeLog 6 Jul 2005 16:45:42 -0000 1.1230 +++ ChangeLog 6 Jul 2005 17:17:58 -0000 1.1231 @@ -1,5 +1,13 @@ 2005-07-07 Jan Schmidt <th...@ma...> + * 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 <th...@ma...> * configure.ac: Remove unnecessary queue2/3/4 examples. Index: part-gstbin.txt RCS file: /cvs/gstreamer/gstreamer/docs/design/part-gstbin.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- part-gstbin.txt 22 Mar 2005 11:32:59 -0000 1.1 +++ part-gstbin.txt 6 Jul 2005 17:17:59 -0000 1.2 @@ -3,8 +3,8 @@ 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 @@ - 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 @@ It is a good idea to update the GList of children so that the _iterate() functions can still be used. Index: part-gstpipeline.txt RCS file: /cvs/gstreamer/gstreamer/docs/design/part-gstpipeline.txt,v retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- part-gstpipeline.txt 21 Apr 2005 09:37:34 -0000 1.2 +++ part-gstpipeline.txt 6 Jul 2005 17:17:59 -0000 1.3 @@ -2,11 +2,7 @@ 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 @@ 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 @@ 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 ------- |