[gst-devel] GNOME Sound server arch

Erik Walthinsen omega at temple-baptist.com
Sun May 20 00:59:53 CEST 2001

Here's an idea I just cooked up.  The components are, gnome-libs, asd,
GStreamer, and alsa/oss/....

First, you have asd.  Right now it's a sound server with all sorts of
stuff in it: multiple transports, sources, and sinks.  Thus there is a bit
of overlap between that and GStreamer.  Add gnome-libs with an asd
dependency for the client side, and you've got stuff that can write over
the 'wire' to the sound daemon.

Here's my thought:  write asd as two things: a protocol or set of
protocols for various transports (documents), and a thin library that
handles both send and receive.  This is very analagous to the X protocol
and xlib.

Then, we have a simple implementation in gnome-libs that can output
various sound files and even simple streams via this simple API.  If the
protocol is capable of handling various file types, this fulfills the
desire for people to gnome_play_sound("bleep.ogg").

The server can then be implemented any way you want.  To avoid duplication
of code (decoders, output modules), simply write this daemon with
GStreamer, with a plugin that handles the server-side of the asd protocol
via libasd.  More extensive stuff can then be done by a secondary, much
more corba-ized and gstreamer-specific protocol, which would allow the app
to place sub-pipelines or even entire pipelines on the server.

The question is whether we want to provide media-player functionality to
the sound server API or not.  I would tend to say no.  The sound server
should only handle output, with the special case of being able to play
bleeps in various file formats.  A player should either just send raw
audio to the server after decoding with appropriate effects, or if it's
available, use the higher-level GStreamer interface to set up the pipeline
as appropriate.

Now this interfaces with the more general media-server API I'm not sure.
Ow3n, you want to comment on that?

I'd like to get something a little more concrete and propose it to the
gnome people ASAP, so comments are welcome.

      Erik Walthinsen <omega at temple-baptist.com> - System Administrator
       /  \                GStreamer - The only way to stream!
      |    | M E G A        ***** http://gstreamer.net/ *****
      _\  /_

More information about the gstreamer-devel mailing list