[gst-devel] float caps

Benjamin Otte in7y118 at public.uni-hamburg.de
Mon Jan 19 07:22:00 CET 2004


Hi guys,

I recently tried to write a vorbis decoder and vorbis uses float
internally, so I thought I'd use float caps.
However float seems to subscribe to the one-pad-per-channel mentality that
just doesn't work with GStreamer. For several reasons:
- having multiple connections between elements easily leads to deadlocks
- even if it works it's slow because of all that cothread switching
- it's extremely hard to code with REQUEST and SOMETIMES pads (I reduced
the float2int code from 530 to 180 lines while adding stuff)
- Nowhere in GStreamer are multiple connections used to represent one
"real" connection. Try convincing autopluggers that they might need to use
multiple connections to get stereo output for vorbis.

And as far as I can see in our current elements, noone needs multiple
pads. I just saw that float2int and alsasink are a hell of a lot more
complicated then they need to be just because of float.
So my questions are:
- Why was that design decision made and is there any reason to keep using
it?
- If not and we designed a new float format, how should data in it be
represented? What are the requirements?
- Who is using float audio atm?


Benjamin





More information about the gstreamer-devel mailing list