[gst-devel] discussion about dparams

Steve Baker steve at stevebaker.org
Wed Jul 21 14:46:16 CEST 2004


> hi steve,
>
> I hold my promisse and bug you further, but now public.
> For the software we develop (buzztard.sf.net) we need a machanism like
> dparam
> (we actually use them). I commited some thoughts to
> docs/random/ensonic/dparams.
> What you and otheres think - shall we extend them or should we follow a
> different way?

Apart from the last point "* concept for global, voice params" these
points seem to be minor tidying up.

I've actually just started rewriting the dparams library to remove much of
the suckage and make it easier to use and extend.

This is all a bit inconvenient for you since you've just started using
them ;)

I'll commit docs/random/steveb/dparams in a few days, but for now here are
some bullet points.

Element API:
- Makes extensive use of GstStructures to define dparam behaviour
- Dparam instance behaviour can be specified in gst-launch, making demos
so cool that wingo will want to use dparams ;)
- Can easily turn any existing element property into a dparam (optional at
runtime)
- Audio buffers can be altered with smooth interpolation by creating a
control array which has the same number of samples as the buffer - instead
of using evil macro magic
- Dparams can be added and removed at runtime (unlike element properties)

DParam Behaviour API:
- Behaviours are no longer gobjects - this was too heavyweight.
- Behaviours can be chained (eg, a multiply behaviour could use the values
of two sine behaviours to calculate its result

Currently I have designed (not implemented) the public API and will
hopefully continue to develop it over the next few days.

The old dparams library will stay where it is and the new one will
eventually appear in gst-plugins/gst-libs. It won't be committed until the
0.9 branch is open. Until then I'll be posting patches to bugzilla for
people to try out and comment on. Once all elements are moved over the old
library can be deleted.

I'm not sure where this leaves your development, probably waiting for me
to get something working. Could you explain what you need for global/voice
params so I can make sure my design can implement it?

cheers





More information about the gstreamer-devel mailing list