diff --git a/ChangeLog b/ChangeLog index 620bede4a6..643074d2db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-05-13 Tim-Philipp Müller + + * docs/design/part-element-source.txt: + Mention GstPushSrc + 2005-05-12 Wim Taymans * gst/base/gstbasesink.c: (gst_basesink_init), diff --git a/docs/design/part-element-source.txt b/docs/design/part-element-source.txt index 97c889a9fb..fc929de17b 100644 --- a/docs/design/part-element-source.txt +++ b/docs/design/part-element-source.txt @@ -50,18 +50,28 @@ source's state change function is called. Source base classes ------------------- -GstBaseSource: +GstBaseSrc: This base class provides an implementation of a random access source and is very well suited for file reader like sources. +GstPushSrc: + Base class for block-based sources. This class is mostly useful for + elements that cannot do random access, or at least very slowly. The + source usually prefers to push out a fixed size buffer. + Classes extending this base class will usually be scheduled in a push + based mode. It the peer accepts to operate without offsets and withing + the limits of the allowed block size, this class can operate in getrange + based mode automatically. + The subclass should extend the methods from the baseclass in + addition to the create method. If the source is seekable, it + needs to override GstBaseSrc::event() in addition to + GstBaseSrc::is_seekable() in order to retrieve the seek offset, + which is the offset of the next buffer to be requested. - - - - + Flushing, scheduling and sync is all handled by this base class.