mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
41b9a5264d
Original commit message from CVS: * docs/design/part-clocks.txt: * docs/design/part-element-sink.txt: * docs/design/part-events.txt: * docs/design/part-preroll.txt: * docs/design/part-states.txt: Some more tweeks and additions to the docs.
31 lines
819 B
Text
31 lines
819 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.
|
|
|
|
|
|
|
|
|