[gst-devel] auto-detecting sinks

Steve Baker steve at stevebaker.org
Wed Apr 23 19:50:04 CEST 2003


I have a proposal to add auto-detection of audio and video sinks to the
libgstgconf helper library.

There will be two new gconf keys, autodetect_audiosink and
autodetect_videosink. 

When autodetect_audiosink is false, a call to
gst_gconf_get_default_audio_sink will do what it does now - return a bin
built from the audiosink gconf key.

When autodetect_audiosink is true an attempt is made to create number of
audio sink pipelines. As soon as one succeeds it is returned as the
default bin.  The order of trying for now will be:
- alsa
- oss
- esound
- any others?

The pipeline will be fakesrc ! fooaudiosink and it will be played with 1
buffer of silent 2 channel 16 bit 44100Hz audio.

When autodetect_videosink is true the following will happen:
- if Xv exists, return (xvideosink)
- if sdlvideosink exists, return (sdlvideosink) (not until it becomes
embeddable)
- else, return (colorspace ! rescale ! xvideosink disable-xv=true)

Eventually audiosink and videosink gconf keys could be empty by default
and could be populated the first time the auto-detection code is run.

One thing I'd like to get some opinion on is adding GError to all the
public methods of libgstgconf. It breaks API, but I think the
higher-level code needs detailed errors rather than just null return
values.

Finally, there will eventually be new methods which would return a list
of viable sink pipelines ordered by preference. This could be used by an
Audio & Video capplet so users can change their sink.

I've started this work now so any suggestions are welcome.

cheers

-- 
Steve Baker <steve at stevebaker.org>






More information about the gstreamer-devel mailing list