[gst-devel] Scheduler requirements
Benjamin Otte
in7y118 at public.uni-hamburg.de
Mon Mar 15 08:20:07 CET 2004
Quoting David Schleef <ds at schleef.org>:
> > - Do chain and loop based modes of operation exclude each other? So, for
> > example, is it possible for a loop based element to have sink pads with
> > chain functions? If so, what happens when the loop function tries to
> > pull a buffer from such a pad?
>
> Yes. no. bad things.
>
Actually it's "Yes. Yes, but the chainfunction is ignored. It works just as
other loopfunctions.", but I prefer your answer ;)
> > - Where are get functions allowed? Can all elements have source pads
> > with a get function, or just source elements?
>
> In source elements only.
>
I want this changed btw. I think there's a lot to gain (mainly: getting rid of
memcpy's) if you could pull an exact number of bytes in elements that
currently use bytestreams.
> > - Can a loop or chain function invoke gst_pad_push in a pad having a get
> > function? What happens in this case?
>
> No. Bad things.
>
I think it's "get functions are ignored on loop- or chainbased elements that
aren't decoupled", but your answer is of course how it should be.
The core should definitely check the setup better.
> Actually, I'm in favor of tightening a lot of restrictions on elements.
> Erik always wanted to write a complex core that allows one to write
> really crappy plugins (since several years ago, lots of libraries were
> quite crappy). I think that model has failed.
>
We could wrap bad elements in a lot of overhead (think threads and the inf
loop discussion earlier). Writing bad elements should still be possible,
though not encouraged or easy.
Benjamin
More information about the gstreamer-devel
mailing list