mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
d21b607309
Original commit message from CVS: * docs/design/part-TODO.txt: * docs/design/part-clocks.txt: * docs/design/part-element-sink.txt: * docs/design/part-events.txt: * docs/design/part-gstpipeline.txt: Updated docs, mostly DISCONT related.
32 lines
876 B
Text
32 lines
876 B
Text
Sink elements
|
|
-------------
|
|
|
|
Sink elements consume data. They normally have no source pads.
|
|
|
|
typical sink elements include:
|
|
|
|
- audio/video renderers
|
|
- network sinks
|
|
- filesinks
|
|
|
|
Sinks are harder to construct than other element types as they are
|
|
treated specially by the GStreamer core.
|
|
|
|
state changes
|
|
-------------
|
|
|
|
A sink always returns ASYNC from the state change to PAUSED, this
|
|
includes a state change from READY->PAUSED and PLAYING->PAUSED. The
|
|
reason for this is that this way we can detect when the first buffer
|
|
or event arrives in the sink when the state change completes.
|
|
|
|
A sink should block on the first event or buffer received in the
|
|
PAUSED state before commiting the state to PAUSED.
|
|
|
|
FLUSHING events have to be handled out of sync with the buffer flow
|
|
and take no part in the preroll procedure.
|
|
|
|
Events other than EOS do not complete the preroll stage.
|
|
|
|
|
|
|