Right now we render songs by using some hard-coded pipelines. This lacks usabillity regarding the availabillity of the elements and there is no way to set encoding parameters like the quality.
gnome audio profiles
Gnome-media provides some gstreamer pipelines in gconf together with a description and a name. They can be edited via gnome-audio-profiles-properties. Some links:
Unfortunately they have some disadvantages:
- gconf dependency (even though they aren't settings)
- gnome-media dependency
- no relation to what gst elements are realy available
- no encoder settings
There is some discussion in bugzilla about a future version.
gstreamer audio profiles
IMHO the encoder-profile feature should be provided by the gst-registry. Muxer (oggmux, avimux,mpegmux,wavenc) elements could register supported profiles, as they know what possible codecs they can handle inside the container format. When the registry changes they can only those formats which are available.
- human readable name for the format
- partial pipeline
- user parameters
- file extension
One example would be:
name: OGG Vorbis, CD Quality, lossy desc: Used for converting to CD-quality audio, but with a lossy compression codec. Use this for CD extraction and radio recordings. pipeline: audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux params: enc:quality ext: ogg
- how to figure out about the parameters ('name=enc' cannot be guaranteed to be unique)
- should we have a distintion between standart and advanced parameters?
- how to handle dynamic pipeline configs (e.g. changing one param requires additional elements)
EncodeBin will setup the encoding pipeline for us. The elements are picked according to an GstEncodingProfile. We nned to setup profiles for the format we want to produce (it seems).
- the banshee music player introduces a new profile system