Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
luzpaz
gstreamer
Commits
f65a81ae
Commit
f65a81ae
authored
Dec 14, 2009
by
Stefan Kost
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs: review and fix spelling
parent
e243a411
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
28 deletions
+29
-28
docs/design/part-states.txt
docs/design/part-states.txt
+29
-28
No files found.
docs/design/part-states.txt
View file @
f65a81ae
...
...
@@ -30,61 +30,62 @@ the following state changes are possible:
NULL -> READY
- The element must check if the resources it needs are available.
Device sinks and -sources typically try to probe the device to constain
Device sinks and -sources typically try to probe the device to const
r
ain
their caps.
- The element opens the device, this is needed if the previous step requires
the device to be opened.
READY -> PAUSED
-
t
he element pads are activated in order to receive data in PAUSED.
-
T
he element pads are activated in order to receive data in PAUSED.
Streaming threads are started.
-
s
ome elements might need to return ASYNC and complete the state change
-
S
ome elements might need to return ASYNC and complete the state change
when they have enough information. It is a requirement for sinks to
return ASYNC and complete the state change when they receive the first
buffer or EOS event (prerol). Sinks also block the dataflow when in PAUSED.
-
a
pipeline resets the running_time to 0.
-
l
ive sources return NO_PREROLL and don't generate data.
buffer or EOS event (prerol
l
). Sinks also block the dataflow when in PAUSED.
-
A
pipeline resets the running_time to 0.
-
L
ive sources return NO_PREROLL and don't generate data.
PAUSED -> PLAYING
-
m
ost elements ignore this state change.
-
M
ost elements ignore this state change.
- The pipeline selects a clock and distributes this to all the children
before setting them to PLAYING. This means that it is only alowed to
synchronize on the clock in the PLAYING state.
- The pipeline uses the clock and the running_time to calculate the base_time.
The base_time is distributed to all children when performing the state
change.
-
s
ink elements stop blocking on the preroll buffer or event and start
rendering the data.
-
s
inks can post the EOS message in the PLAYING state. It is not allowed to
-
S
ink elements stop blocking on the preroll buffer or event and start
rendering the data.
-
S
inks can post the EOS message in the PLAYING state. It is not allowed to
post EOS when not in the PLAYING state.
-
w
hile streaming in PAUSED or PLAYING elements can create and remove
dynamic
pads.
-
l
ive sources start generating data and return SUCCESS.
-
W
hile streaming in PAUSED or PLAYING elements can create and remove
sometimes
pads.
-
L
ive sources start generating data and return SUCCESS.
PLAYING -> PAUSED
-
m
ost elements ignore this state change.
-
M
ost elements ignore this state change.
- The pipeline calculates the running_time based on the last selected clock
and the base_time. It stores this information to continue playback when
going back to the PLAYING state.
-
s
inks unblock any clock wait calls.
-
w
hen a sink d
id
not have a pending buffer to play, it returns ASYNC from
this state change and complete the state change when t
hey
receive a new
buffer
or an EOS event.
-
a
ny queued EOS messages are removed since they will be reposted when going
-
S
inks unblock any clock wait calls.
-
W
hen a sink d
oes
not have a pending buffer to play, it returns ASYNC from
this state change and complete
s
the state change when
i
t receive
s
a new
buffer
or an EOS event.
-
A
ny queued EOS messages are removed since they will be reposted when going
back to the PLAYING state. The EOS messages are queued in GstBins.
-
l
ive sources stop generating data and return NO_PREROLL.
-
L
ive sources stop generating data and return NO_PREROLL.
PAUSED -> READY
- sinks unblock any waits in the preroll.
- elements unblock any waits on devices
- chain or get_range functions return WRONG_STATE.
- the element pads are deactivated so that streaming becomes impossible and
all streaming threads are stopped.
- the sink forgets all negotiated formats
- Sinks unblock any waits in the preroll.
- Elements unblock any waits on devices
- Chain or get_range functions return WRONG_STATE.
- The element pads are deactivated so that streaming becomes impossible and
all streaming threads are stopped.
- The sink forgets all negotiated formats
- Elements remove all sometimes pads
READY -> NULL
-
e
lements close devices
-
e
lement re
moves any dynamically created pads
-
E
lements close devices
-
E
lement
s
re
set any internal state.
State variables
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment