design: TODO: add missing markup

This commit is contained in:
Reynaldo H. Verdejo Pinochet 2016-12-30 00:58:29 -08:00
parent ea18d865ae
commit 3d0ee0f3ba

View file

@ -3,15 +3,15 @@
## API/ABI ## API/ABI
- implement return values from events in addition to the gboolean. - implement return values from events in addition to the gboolean.
This should be done by making the event contain a GstStructure with This should be done by making the event contain a `GstStructure` with
input/output values, similar to GstQuery. A typical use case is input/output values, similar to `GstQuery`. A typical use case is
performing a non-accurate seek to a keyframe, after the seek you 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 gst\_pad\_push\_event() return a GstFlowReturn - make `_pad_push_event()` return a `GstFlowReturn`
- GstEvent, GstMessage register like GstFormat or GstQuery. - `GstEvent`, `GstMessage` register like `GstFormat` or `GstQuery`.
- query POSITION/DURATION return accuracy. Just a flag or accuracy - query POSITION/DURATION return accuracy. Just a flag or accuracy
percentage. percentage.
@ -21,30 +21,30 @@ percentage.
- rethink how we handle dynamic replugging wrt segments and other - rethink how we handle dynamic replugging wrt segments and other
events that already got pushed and need to be pushed again. Might events that already got pushed and need to be pushed again. Might
need GstFlowReturn from gst\_pad\_push\_event(). FIXED in 0.11 with need `GstFlowReturn` from `gst_pad_push_event()`. FIXED in 0.11 with
sticky events. sticky events.
- Optimize negotiation. We currently do a get\_caps() call when we - Optimize negotiation. We currently do a `get_caps()` call when we
link pads, which could potentially generate a huge list of caps and link pads, which could potentially generate a huge list of caps and
all their combinations, we need to avoid generating these huge lists all their combinations, we need to avoid generating these huge lists
by generating them We also need to incrementally return by generating them We also need to incrementally return
intersections etc, for this. somewhat incrementally when needed. We intersections etc, for this. somewhat incrementally when needed. We
can do this with a gst\_pad\_iterate\_caps() call. We also need to 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 0.11 with
a filter on getcaps functions. 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
state (rtspsrc going to PAUSED or READY is different in that we can state (rtspsrc going to `PAUSED` or `READY` is different in that we can
avoid sending the useless PAUSED request). 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: - pad block has several issues:
- cant block on selected things, like push, pull, pad\_alloc, - cant block on selected things, like push, pull, `pad_alloc`,
events, … events, …
- cant check why the block happened. We should also be able to - cant check why the block happened. We should also be able to
@ -59,7 +59,7 @@ code-wise.
theyre done. theyre done.
- blocking should only happen from one thread. If one thread does - blocking should only happen from one thread. If one thread does
pad\_alloc and another a push, the push might be busy while the `pad_alloc` and another a push, the push might be busy while the
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
@ -67,7 +67,7 @@ code-wise.
probes. probes.
- rethink the way we do upstream renegotiation. Currently its done - rethink the way we do upstream renegotiation. Currently its 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
suggest 1 format and the need to allocate a buffer of this suggested 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
@ -90,7 +90,7 @@ has to accept the caps anyway.
## DESIGN ## DESIGN
- unlinking pads in the PAUSED state needs to make sure the stream - 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 thread is not executing code. Can this be done with a flush to
unlock all downstream chain functions? Do we do this automatically unlock all downstream chain functions? Do we do this automatically
or let the app handle this? or let the app handle this?