mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
design: Update TODO document
A lot of things have already been fixed in 1.x
This commit is contained in:
parent
825b9552ba
commit
d2998815d1
1 changed files with 37 additions and 33 deletions
|
@ -9,7 +9,8 @@ performing a non-accurate seek to a keyframe, after the seek you
|
||||||
want to get the new stream time that will actually be used to update
|
want to get the new stream time that will actually be used to update
|
||||||
the slider bar.
|
the slider bar.
|
||||||
|
|
||||||
- make `_pad_push_event()` return a `GstFlowReturn`
|
- make `_pad_push_event()` return a `GstFlowReturn`. Partly fixed with
|
||||||
|
`GstPadEventFullFunction` since 1.8. Needs to be made generic.
|
||||||
|
|
||||||
- `GstEvent`, `GstMessage` register like `GstFormat` or `GstQuery`.
|
- `GstEvent`, `GstMessage` register like `GstFormat` or `GstQuery`.
|
||||||
|
|
||||||
|
@ -19,20 +20,6 @@ percentage.
|
||||||
- use | instead of + as divider in serialization of Flags
|
- use | instead of + as divider in serialization of Flags
|
||||||
(gstvalue/gststructure)
|
(gstvalue/gststructure)
|
||||||
|
|
||||||
- rethink how we handle dynamic replugging wrt segments and other
|
|
||||||
events that already got pushed and need to be pushed again. Might
|
|
||||||
need `GstFlowReturn` from `gst_pad_push_event()`. FIXED in 0.11 with
|
|
||||||
sticky events.
|
|
||||||
|
|
||||||
- Optimize negotiation. We currently do a `get_caps()` call when we
|
|
||||||
link pads, which could potentially generate a huge list of caps and
|
|
||||||
all their combinations, we need to avoid generating these huge lists
|
|
||||||
by generating them We also need to incrementally return
|
|
||||||
intersections etc, for this. somewhat incrementally when needed. We
|
|
||||||
can do this with a `gst_pad_iterate_caps()` call. We also need to
|
|
||||||
incrementally return intersections etc, for this. FIXED in 0.11 with
|
|
||||||
a filter on getcaps functions.
|
|
||||||
|
|
||||||
- Elements in a bin have no clue about the final state of the parent
|
- Elements in a bin have no clue about the final state of the parent
|
||||||
element since the bin sets the target state on its children in small
|
element since the bin sets the target state on its children in small
|
||||||
steps. This causes problems for elements that like to know the final
|
steps. This causes problems for elements that like to know the final
|
||||||
|
@ -42,7 +29,36 @@ avoid sending the useless `PAUSED` request).
|
||||||
- Make serialisation of structures more consistent, readable and nicer
|
- Make serialisation of structures more consistent, readable and nicer
|
||||||
code-wise.
|
code-wise.
|
||||||
|
|
||||||
- pad block has several issues:
|
## IMPLEMENTATION
|
||||||
|
|
||||||
|
- implement more QOS, [qos](design/qos.md).
|
||||||
|
|
||||||
|
- implement BUFFERSIZE.
|
||||||
|
|
||||||
|
## DESIGN
|
||||||
|
|
||||||
|
- unlinking pads in the `PAUSED` state needs to make sure the stream
|
||||||
|
thread is not executing code. Can this be done with a flush to
|
||||||
|
unlock all downstream chain functions? Do we do this automatically
|
||||||
|
or let the app handle this?
|
||||||
|
|
||||||
|
# Fixed in 1.0
|
||||||
|
|
||||||
|
- Optimize negotiation. We currently do a `get_caps()` call when we
|
||||||
|
link pads, which could potentially generate a huge list of caps and
|
||||||
|
all their combinations, we need to avoid generating these huge lists
|
||||||
|
by generating them We also need to incrementally return
|
||||||
|
intersections etc, for this. somewhat incrementally when needed. We
|
||||||
|
can do this with a `gst_pad_iterate_caps()` call. We also need to
|
||||||
|
incrementally return intersections etc, for this. FIXED in 1.0 with
|
||||||
|
a filter on getcaps functions.
|
||||||
|
|
||||||
|
- rethink how we handle dynamic replugging wrt segments and other
|
||||||
|
events that already got pushed and need to be pushed again. Might
|
||||||
|
need `GstFlowReturn` from `gst_pad_push_event()`. FIXED in 1.0 with
|
||||||
|
sticky events.
|
||||||
|
|
||||||
|
- pad block has several issues (all Fixed in 1.0 with unified pad probes):
|
||||||
|
|
||||||
- can’t block on selected things, like push, pull, `pad_alloc`,
|
- can’t block on selected things, like push, pull, `pad_alloc`,
|
||||||
events, …
|
events, …
|
||||||
|
@ -63,8 +79,7 @@ code-wise.
|
||||||
block callback is done.
|
block callback is done.
|
||||||
|
|
||||||
- maybe this name is overloaded. We need to look at some more use
|
- maybe this name is overloaded. We need to look at some more use
|
||||||
cases before trying to fix this. FIXED in 0.11 with BLOCKING
|
cases before trying to fix this.
|
||||||
probes.
|
|
||||||
|
|
||||||
- rethink the way we do upstream renegotiation. Currently it’s done
|
- rethink the way we do upstream renegotiation. Currently it’s done
|
||||||
with `pad_alloc` but this has many issues such as only being able to
|
with `pad_alloc` but this has many issues such as only being able to
|
||||||
|
@ -72,25 +87,14 @@ suggest 1 format and the need to allocate a buffer of this suggested
|
||||||
format (some elements such as capsfilter only know about the format,
|
format (some elements such as capsfilter only know about the format,
|
||||||
not the size). We would ideally like to let upstream renegotiate a
|
not the size). We would ideally like to let upstream renegotiate a
|
||||||
new format just like it did when it started. This could, for
|
new format just like it did when it started. This could, for
|
||||||
example, easily be triggered with a RENEGOTIATE event. FIXED in 0.11
|
example, easily be triggered with a RENEGOTIATE event. FIXED in 1.0
|
||||||
with RECONFIGURE events.
|
with RECONFIGURE events.
|
||||||
|
|
||||||
- Remove the result format value in queries. FIXED in 0.11
|
- Remove the result format value in queries. FIXED in 1.0
|
||||||
|
|
||||||
- Try to minimize the amount of acceptcaps calls when pushing buffers
|
- Try to minimize the amount of acceptcaps calls when pushing buffers
|
||||||
around. The element pushing the buffer usually negotiated already
|
around. The element pushing the buffer usually negotiated already
|
||||||
and decided on the format. The element receiving the buffer usually
|
and decided on the format. The element receiving the buffer usually
|
||||||
has to accept the caps anyway.
|
has to accept the caps anyway. FIXED in 1.0, caps are no longer on
|
||||||
|
buffers.
|
||||||
|
|
||||||
## IMPLEMENTATION
|
|
||||||
|
|
||||||
- implement more QOS, [qos](design/qos.md).
|
|
||||||
|
|
||||||
- implement BUFFERSIZE.
|
|
||||||
|
|
||||||
## DESIGN
|
|
||||||
|
|
||||||
- unlinking pads in the `PAUSED` state needs to make sure the stream
|
|
||||||
thread is not executing code. Can this be done with a flush to
|
|
||||||
unlock all downstream chain functions? Do we do this automatically
|
|
||||||
or let the app handle this?
|
|
||||||
|
|
Loading…
Reference in a new issue