mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 18:50:48 +00:00
4a402c1c7d
Found via `codespell` https://bugzilla.gnome.org/show_bug.cgi?id=795610
13 lines
975 B
Text
13 lines
975 B
Text
Currently, when an element wants to push or pull, they call gst_pad_*. These functions then decide what
|
|
to do based on the selection of pointers in the pad. There are at least 2 options for each, plus some
|
|
header stuff to do various checking of flags. Unfortunately, because of the selection of pointers in
|
|
the pad, there is at least one case where scheduling has to be tricked, by providing a pointer to a
|
|
function with no body.
|
|
|
|
What I propose is that these functions be replaced with macros that call a function pointer directly.
|
|
The default functions (provided by GstPad) would be capable of chaining, that's about it. When a
|
|
schedule is formed, these get replaced with more specific functions, provided by GstBin or a subclass.
|
|
|
|
In the chain case, the pad_push_func might even be replaced brute force with the chain function, since
|
|
they have the same prototype. In the cothreaded case, various functions would provide the ability to
|
|
switch, deal with bufpens, etc.
|