[gst-devel] random thoughts on audio plugins

Thomas Vander Stichele thomas at urgent.rug.ac.be
Sun May 20 17:21:55 CEST 2001

Hi everyone,

I wanted to clean up my audio plugins and I was thinking about some of the
issues involved.

1) I created a set of basic wav files for testing purposes; I have 48k,
44.1k and 8k, in 8 or 16 bit, mono or stereo.  I've put them up at
http://gstreamer.net/media/testsuite.  Can somebody confirm they're ok as
far as wav type goes ?

2) Some of the plugins really only handle the generic case of
stereo/16/441, so I thought these test files would serve a purpose in
testing that

3) I changed parsewav to set caps on the src pad, and it seems to work.
With the test files unpacked in /tmp, I ran
for a in /tmp/dark*.wav; do echo $a; tools/gstreamer-launch disksrc
location=$a ! parsewav ! osssink; done
and they sounded very similar as they are supposed to (except for
quality).  I think it would be a good idea for all of the plugins to be
tested against such a reference set.

4) While discussing the possibility of a wavesink element on IRC, I got
the feeling that gstreamer could do with a bit more structure in the
naming scheme and have some plugin creation guidelines.

Some questions that should be answered are :
* is it better to create a wavesink or a wavencode and run a wavencode !
disksink pipeline ?
* I tend to think the latter, but what is the speed penalty for a plugin
that for 99.9% just copies data from in to out ?
* How should plugins be named ? It's not very logical to have parsewav and
wavencode as names when they're basically the opposite.
* should a plugin be prefixed with gst ? should this be cleaned up in the
source ?

5) As for audio, gstreamer now has two basic formats.  audio/raw in int or
float.  Should all of the audio plugins be forced to handle both types at
the same time ? Should we rely on convertors and just use each plugin in
the format that the original author programmed it in ?

6) as for plugins, it looks like the directory structure could do with
some reorganizing :
* I don't see why some plugins belong in plugins/filter and others in
plugins; compare audioscale to stereo2mono
* the plugins dir has a lot of subdirs already that maybe could be
structured according to type of plugin; at first glance I would propose
something like audio / video / system / mixed and arrange them under
those.  Though there are probably better structures.

I'd like to help in restructuring these, but I'm not sure how to do that
in CVS and if it's helpful at all ;)

any thoughts on this are welcome.


<-*-                      -*->
Keep me in your bed all day
Nothing heals me like you do
<-*- thomas at apestaart.org -*->
URGent, the best radio on the Internet - 24/7 ! - http://urgent.rug.ac.be/

More information about the gstreamer-devel mailing list