mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
docs/design/: Small doc updates
Original commit message from CVS: * docs/design/part-TODO.txt: * docs/design/part-caps.txt: * docs/design/part-clocks.txt: * docs/design/part-negotiation.txt: * docs/design/part-preroll.txt: Small doc updates
This commit is contained in:
parent
fcc76e3d07
commit
c41ec35eaf
6 changed files with 21 additions and 8 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2005-06-02 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* docs/design/part-TODO.txt:
|
||||||
|
* docs/design/part-caps.txt:
|
||||||
|
* docs/design/part-clocks.txt:
|
||||||
|
* docs/design/part-negotiation.txt:
|
||||||
|
* docs/design/part-preroll.txt:
|
||||||
|
Small doc updates
|
||||||
|
|
||||||
2005-05-30 Wim Taymans <wim@fluendo.com>
|
2005-05-30 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* gst/elements/gstidentity.c: (gst_identity_event),
|
* gst/elements/gstidentity.c: (gst_identity_event),
|
||||||
|
|
|
@ -14,9 +14,6 @@
|
||||||
done by making the event contain a GstStructure with input/output values, similar
|
done by making the event contain a GstStructure with input/output values, similar
|
||||||
to GstMessage.
|
to GstMessage.
|
||||||
|
|
||||||
- implement query ala events as opposed to the current return value of only a
|
|
||||||
guint64. I don't have a use case where this a problem yet, though.
|
|
||||||
|
|
||||||
- implement state change order on get<->loop-get<->loop elements. This probably
|
- implement state change order on get<->loop-get<->loop elements. This probably
|
||||||
requires a backtracking algorithm.
|
requires a backtracking algorithm.
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ Caps are exposed on GstPadTemplates to describe all possible types a
|
||||||
given pad can handle. They are also stored in the registry along with
|
given pad can handle. They are also stored in the registry along with
|
||||||
a description of the element.
|
a description of the element.
|
||||||
|
|
||||||
Caps are exposed on the element pads using the get_caps pad function.
|
Caps are exposed on the element pads using the _get_caps() pad function.
|
||||||
This function describes the possible types that the pad can handle or
|
This function describes the possible types that the pad can handle or
|
||||||
produce (see part-pads.txt and part-negotiation.txt).
|
produce (see part-pads.txt and part-negotiation.txt).
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ It is possible to perform a blocking wait on the same ID from multiple
|
||||||
threads. However, registering the same ID for multiple async notifications is
|
threads. However, registering the same ID for multiple async notifications is
|
||||||
not possible, the callback will only be called once.
|
not possible, the callback will only be called once.
|
||||||
|
|
||||||
None of the wait operations unref the GstClockID, the application is
|
None of the wait operations unref the GstClockID, the owner is
|
||||||
responsible for unreffing the ids itself. This holds for both periodic and
|
responsible for unreffing the ids itself. This holds for both periodic and
|
||||||
single shot notifications.
|
single shot notifications.
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ negotiation.
|
||||||
|
|
||||||
The basics of negotiation are as follows:
|
The basics of negotiation are as follows:
|
||||||
|
|
||||||
- GstCaps (see part-caps.txt) are attached and refcounted before they
|
- GstCaps (see part-caps.txt) are refcounted before they
|
||||||
are attached to a buffer to describe the contents of the buffer.
|
are attached to a buffer to describe the contents of the buffer.
|
||||||
It is possible to add a NULL caps to a buffer, this means that the
|
It is possible to add a NULL caps to a buffer, this means that the
|
||||||
buffer type did not change relative to the previous buffer. If no
|
buffer type did not change relative to the previous buffer. If no
|
||||||
|
@ -22,7 +22,8 @@ The basics of negotiation are as follows:
|
||||||
- Before receiving a buffer, an element must check if the datatype of
|
- Before receiving a buffer, an element must check if the datatype of
|
||||||
the buffer has changed. The element should reconfigure itself to the
|
the buffer has changed. The element should reconfigure itself to the
|
||||||
new format before processing the buffer data. If the data type on
|
new format before processing the buffer data. If the data type on
|
||||||
the buffer is not acceptable, the element should refuse the buffer.
|
the buffer is not acceptable, the element should refuse the buffer by
|
||||||
|
returning an appropriate return value from the chain function.
|
||||||
|
|
||||||
- When requesting a buffer from a bufferpool, the prefered type should
|
- When requesting a buffer from a bufferpool, the prefered type should
|
||||||
be passed to the buffer allocation function. After receiving a buffer
|
be passed to the buffer allocation function. After receiving a buffer
|
||||||
|
@ -102,7 +103,7 @@ The general flow for a sink pad starting a renegotiation.
|
||||||
| |
|
| |
|
||||||
get buffer | alloc_buf |
|
get buffer | alloc_buf |
|
||||||
from pool |---------------->|
|
from pool |---------------->|
|
||||||
with type | | Create buffer of new type B.
|
with type A | | Create buffer of new type B.
|
||||||
| |
|
| |
|
||||||
check type |<----------------|
|
check type |<----------------|
|
||||||
and | |
|
and | |
|
||||||
|
|
|
@ -6,6 +6,9 @@ has been queued on the input pad or pads. This process is called prerolling
|
||||||
and is needed to fill the pipeline with buffers so that the transition to
|
and is needed to fill the pipeline with buffers so that the transition to
|
||||||
PLAYING goes as fast as possible with no visual delay for the user.
|
PLAYING goes as fast as possible with no visual delay for the user.
|
||||||
|
|
||||||
|
Preroll is also crucial in maintaining correct audio and video synchronsation
|
||||||
|
and ensuring that no buffers are dropped in the sinks.
|
||||||
|
|
||||||
After receiving a buffer (or EOS) on a pad the chain/event function should
|
After receiving a buffer (or EOS) on a pad the chain/event function should
|
||||||
wait to render the buffers or in the EOS case, wait to post the EOS
|
wait to render the buffers or in the EOS case, wait to post the EOS
|
||||||
message.
|
message.
|
||||||
|
@ -38,6 +41,9 @@ The following conditions unlock the preroll:
|
||||||
- a state change
|
- a state change
|
||||||
- a flush event
|
- a flush event
|
||||||
|
|
||||||
|
When the preroll is unlocked by one of these events, a return value of
|
||||||
|
GST_FLOW_WRONG_STATE is to be returned to the peer pad.
|
||||||
|
|
||||||
|
|
||||||
Result of the preroll
|
Result of the preroll
|
||||||
---------------------
|
---------------------
|
||||||
|
|
Loading…
Reference in a new issue