summaryrefslogtreecommitdiff
path: root/docs/design/part-overview.txt
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2006-03-13 10:32:26 +0000
committerWim Taymans <wim.taymans@gmail.com>2006-03-13 10:32:26 +0000
commitb69033434f72704e8309eac422f8da39e283f2e4 (patch)
treed3a7ed9bbc57ac000aec12d9c0e253f1cd7ba39d /docs/design/part-overview.txt
parentff2e4288eddcfe0ff84d1c464f73fe3256e4cbaf (diff)
docs/design/: Documentation updates.
Original commit message from CVS: * docs/design/draft-klass.txt: * docs/design/part-clocks.txt: * docs/design/part-events.txt: * docs/design/part-gstbin.txt: * docs/design/part-gstpipeline.txt: * docs/design/part-messages.txt: * docs/design/part-negotiation.txt: * docs/design/part-overview.txt: * docs/design/part-preroll.txt: * docs/design/part-seeking.txt: * docs/design/part-states.txt: * docs/design/part-streams.txt: Documentation updates.
Diffstat (limited to 'docs/design/part-overview.txt')
-rw-r--r--docs/design/part-overview.txt27
1 files changed, 15 insertions, 12 deletions
diff --git a/docs/design/part-overview.txt b/docs/design/part-overview.txt
index 593ab5a14f..09fa8fb4f9 100644
--- a/docs/design/part-overview.txt
+++ b/docs/design/part-overview.txt
@@ -41,7 +41,7 @@ Introduction
vorbisdec element decodes the compressed data and sends it to the alsasink
element. The alsasink element sends the samples to the audio card for playback.
- Downstream and upstream are the term used to describe the direction in the
+ Downstream and upstream are the terms used to describe the direction in the
Pipeline. From source to sink is called "downstream" and "upstream" is
from sink to source.
@@ -53,7 +53,7 @@ Introduction
level functions on the pipeline object such as PLAY/PAUSE/STOP.
The application also receives messages and notifications from the pipeline such
- as metadata, warning or error messages.
+ as metadata, warning, error and EOS messages.
If the application needs more control over the graph it is possible to directly
access the elements and pads in the pipeline.
@@ -102,8 +102,8 @@ Elements
An element state change to PAUSED will activate the pads of the element. First the
source pads are activated, then the sinkpads. When the pads are activated, the
- pad activate function is called. Some pads will start a thread or some other
- mechanism to start producing or consuming data.
+ pad activate function is called. Some pads will start a thread (GstTask) or some
+ other mechanism to start producing or consuming data.
The PAUSED state is special as it is used to preroll data in the pipeline. The purpose
is to fill all connected elements in the pipeline with data so that the subsequent
@@ -125,7 +125,7 @@ Elements
- demuxer elements, these elements parse a stream and produce several output streams.
- mixer/muxer elements, combine several input streams into one output stream.
- Other categories of elements can be constructed.
+ Other categories of elements can be constructed (see part-klass.txt).
Bins
@@ -158,8 +158,9 @@ Pipeline
A pipeline is a special bin subclass that provides the following features to its
children:
- - Select and manage a clock
- - Provide means for elements to comunicate with the application by the Bus.
+ - Select and manage a clock.
+ - Manage stream time based on the selected clock.
+ - Provide means for elements to comunicate with the application by the GstBus.
- Manage the global state of the elements such as Errors and end-of-stream.
Normally the application creates one pipeline that will manage all the elements
@@ -242,6 +243,8 @@ Dataflow and events
the events are used to denote special conditions in the dataflow such as EOS or
to inform plugins of special events such as flushing or seeking.
+ Some events must be serialized with the buffer flow, others don't.
+
Pipeline construction
---------------------
@@ -396,7 +399,7 @@ Pipeline EOS
finished. When all sinks have reported EOS, the pipeline forwards the EOS message
to the application.
- When in EOS, the pipeline remains in the playing state, if is the application
+ When in EOS, the pipeline remains in the playing state, it is the applications
responsability to PAUSE or READY the pipeline. The application can also issue
a seek, for example.
@@ -428,13 +431,13 @@ Pipeline READY
WRONG_STATE return value to the peer element. The sinkpad is
deactivated and becomes unusable for sending more data.
mp3dec to READY: the pads are deactivated and the state change completes when
- mp3dec leaves its _chain() function.
+ mp3dec leaves its _chain() function.
filesrc to READY: the pads are deactivated and the thread is paused.
The upstream elements finish their chain() function because the downstream element
- returned an error code from the _push() functions. These error codes are eventually
- returned to the element that started the streaming thread (filesrc), which pauses
- the thread and completes the state change.
+ returned an error code (WRONG_STATE) from the _push() functions. These error codes
+ are eventually returned to the element that started the streaming thread (filesrc),
+ which pauses the thread and completes the state change.
This sequence of events ensure that all elements are unblocked and all streaming
threads stopped.