4 This document describes the objects that are passed from element to
5 element in the streaming thread.
11 The following objects are to be expected in the streaming thread:
19 Objects marked with * need to be synchronised to the clock in sinks
26 A typical stream starts with a segment event that marks the
27 buffer timestamp range. After that buffers are sent one after the
28 other. After the last buffer an EOS marks the end of the stream. No
29 more buffers are to be processed after the EOS event.
32 |S| |B||B| ... |B| |EOS|
35 1) SEGMENT, rate, start/stop, time
36 - marks valid buffer timestamp range (start, stop)
37 - marks stream_time of buffers (time). This is the stream time of buffers
38 with a timestamp of NS.start.
39 - marks playback rate (rate). This is the required playback rate.
40 - marks applied rate (applied_rate). This is the already applied playback
41 rate. (See also part-trickmodes.txt)
42 - marks running_time of buffers. This is the time used to synchronize
46 - displayable buffers are between start/stop of the SEGMENT. Buffers
47 outside the segment range should be dropped or clipped.
52 running_time = (B.timestamp - NS.start) / NS.abs_rate + NS.accum
54 running_time = (NS.stop - B.timestamp) / NS.abs_rate + NS.accum
56 * a monotonically increasing value that can be used to synchronize
57 against the clock (See also part-synchronisation.txt).
61 stream_time = (B.timestamp - NS.start) * NS.abs_applied_rate + NS.time
63 * current position in stream between 0 and duration.
66 - marks the end of data, nothing is to be expected after EOS, elements
67 should refuse more data and return GST_FLOW_EOS. A FLUSH_STOP
68 event clears the EOS state of an element.