~ubuntu-branches/ubuntu/trusty/gstreamer1.0/trusty

« back to all changes in this revision

Viewing changes to docs/design/part-streams.txt

  • Committer: Package Import Robot
  • Author(s): Sebastian Dröge
  • Date: 2012-08-08 18:12:33 UTC
  • mfrom: (1.1.3)
  • Revision ID: package-import@ubuntu.com-20120808181233-riejwxprfsxh1njl
Tags: 0.11.93-1
* New upstream release:
  + debian/libgstreamer.symbols:
    - Update symbols file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
The following objects are to be expected in the streaming thread:
12
12
 
13
13
 - events
14
 
    - SEGMENT           (S)
15
 
    - EOS               (EOS)  *
 
14
    - STREAM_START      (START)
 
15
    - SEGMENT           (SEGMENT)
 
16
    - EOS             * (EOS)
16
17
    - TAG               (T)
17
 
 - buffers              (B)    *
 
18
 - buffers            * (B)
18
19
 
19
20
Objects marked with * need to be synchronised to the clock in sinks
20
21
and live sources.
23
24
Typical stream
24
25
~~~~~~~~~~~~~~
25
26
 
26
 
 A typical stream starts with a segment event that marks the
 
27
 A typical stream starts with a stream start event that marks the
 
28
 start of the stream, followed by a segment event that marks the
27
29
 buffer timestamp range. After that buffers are sent one after the
28
30
 other. After the last buffer an EOS marks the end of the stream. No
29
31
 more buffers are to be processed after the EOS event.
30
32
 
31
 
  +-+ +-++-+     +-+ +---+
32
 
  |S| |B||B| ... |B| |EOS|
33
 
  +-+ +-++-+     +-+ +---+
34
 
 
35
 
  1) SEGMENT, rate, start/stop, time
 
33
  +-----+-------+ +-++-+     +-+ +---+
 
34
  |START|SEGMENT| |B||B| ... |B| |EOS|
 
35
  +-----+-------+ +-++-+     +-+ +---+
 
36
 
 
37
  1) STREAM_START
 
38
     - marks the start of a stream; unlike the SEGMENT event, there
 
39
       will be no STREAM_START event after flushing seeks.
 
40
 
 
41
  2) SEGMENT, rate, start/stop, time
36
42
     - marks valid buffer timestamp range (start, stop)
37
43
     - marks stream_time of buffers (time). This is the stream time of buffers
38
44
       with a timestamp of NS.start.
42
48
     - marks running_time of buffers. This is the time used to synchronize
43
49
       against the clock.
44
50
 
45
 
  2) N buffers
 
51
  3) N buffers
46
52
     - displayable buffers are between start/stop of the SEGMENT. Buffers
47
53
       outside the segment range should be dropped or clipped.
48
54
 
62
68
 
63
69
        * current position in stream between 0 and duration.
64
70
 
65
 
  3) EOS
 
71
  4) EOS
66
72
     - marks the end of data, nothing is to be expected after EOS, elements
67
73
       should refuse more data and return GST_FLOW_EOS. A FLUSH_STOP
68
74
       event clears the EOS state of an element.
69
75
 
70
76
 
 
77
Elements
 
78
~~~~~~~~
 
79
 
 
80
These events are generated typically either by the GstBaseSrc class for
 
81
sources operating in push mode, or by a parser/demuxer operating in pull-mode
 
82
and pushing parsed/demuxed data downstream.