Re: Replacing esd with gstreamer



On 3/27/06, Christian Fredrik Kalager Schaller <uraeus linuxrising org> wrote:
> On Mon, 2006-03-27 at 08:52 +0200, Xavier Bestel wrote:
> > Hi,
> >
> > Le dimanche 26 mars 2006 à 20:57 -0800, Ian Burrell a écrit :
> > > I was looking at http://live.gnome.org/GStreamer/esd. I did some
> > > investigation and I think I see how this can be accomplished.  My
> > > impression is that the principal goal is migrating the simple sound
> > > playing API in libgnome to use gstreamer to play sound files and
> > > samples. I am volunteering to make this happen.
> >
> > How do you plan to handle network transparency (using $DISPLAY) with
> > gstreamer
>
> I think the idea would be that people use the GStreamer esdsink when
> they want network transparency. One thing that has been discussed
> earlier in regards to this is the fact that esound caches sound samples
> today to conserve bandwith/better latency, so if you have various 'ding'
> sounds for applications they will be cached in the sound server. If we
> want to keep that around with GStreamer then a GStreamer abstraction API
> to handle it needs to be made. I don't think the creation of such an API
> should be a blocker for Ian doing this switch though.
>

After some more investigation, it looks like a global sample cache is
needed unless changes are made to how the sound events are done.
Currently, gnome-settings-daemon loads all the sound events from the
.soundlist files in /etc/sound/events or $HOME/.gnome2/sound/events.
It loads the samples into esd with names like "gnome-2/login".  The
triggers in libgnome play the sample by name from esd.

The current implementation does have some issues.  I am pretty sure
that if esd gets restarted, the event samples are lost and event
sounds don't happen.  The proper solution is probably have the event
load the sample file on demand.  All that really is needed for
gstreamer is the event name to filename mapping.  I don't know if
there is a way to get that from the gnome-settings-daemon.

 - Ian


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]