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 newsegment 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 |NS| |B||B| ... |B| |EOS|
35 1) NEW_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)
44 - displayable buffers are between start/stop of the NEW_SEGMENT. Buffers
45 outside the segment range should be dropped or clipped.
50 running_time = (B.timestamp - NS.start) / NS.abs_rate + NS.accum
52 running_time = (NS.stop - B.timestamp) / NS.abs_rate + NS.accum
54 * a monotonically increasing value that can be used to synchronize
55 against the clock (See also part-synchronisation.txt).
59 stream_time = (B.timestamp - NS.start) * NS.abs_applied_rate + NS.time
61 * current position in stream between 0 and duration.
64 - marks the end of data, nothing is to be expected after EOS, elements
65 should refuse more data and return GST_FLOW_UNEXPECTED. A FLUSH_STOP
66 event clears the EOS state of an element.