summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2018-03-26 09:52:51 +0200
committerEdward Hervey <bilboed@bilboed.com>2018-03-26 09:53:38 +0200
commitd2998815d136890f18ab0c57ae017705b152c0f5 (patch)
tree73789e4504ede3b42b35851b5d267809d244a2e9
parent825b9552baabb6027f9c15d1b6b76fa2cbba755d (diff)
design: Update TODO document
A lot of things have already been fixed in 1.x
-rw-r--r--markdown/design/TODO.md68
1 files changed, 36 insertions, 32 deletions
diff --git a/markdown/design/TODO.md b/markdown/design/TODO.md
index eedb0c4..1fef7a3 100644
--- a/markdown/design/TODO.md
+++ b/markdown/design/TODO.md
@@ -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
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`.
@@ -19,10 +20,29 @@ percentage.
- use | instead of + as divider in serialization of Flags
(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.
+- 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
+steps. This causes problems for elements that like to know the final
+state (rtspsrc going to `PAUSED` or `READY` is different in that we can
+avoid sending the useless `PAUSED` request).
+
+- Make serialisation of structures more consistent, readable and nicer
+code-wise.
+
+## 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
@@ -30,19 +50,15 @@ 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
+incrementally return intersections etc, for this. FIXED in 1.0 with
a filter on getcaps functions.
-- 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
-steps. This causes problems for elements that like to know the final
-state (rtspsrc going to `PAUSED` or `READY` is different in that we can
-avoid sending the useless `PAUSED` request).
-
-- Make serialisation of structures more consistent, readable and nicer
-code-wise.
+- 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:
+- 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`,
events, …
@@ -63,8 +79,7 @@ code-wise.
block callback is done.
- 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
- probes.
+ cases before trying to fix this.
- 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
@@ -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,
not the size). We would ideally like to let upstream renegotiate a
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.
-- 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
around. The element pushing the buffer usually negotiated already
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?