On 4/16/07, Quentin Mathé <[EMAIL PROTECTED]> wrote:
>
> Le 17 avr. 07 à 00:06, Ricardo Correa a écrit :
>
> > I've meant to reply to this and other threads for some time and for
> > some reason I haven't...
> >
> > While other desktop environments seem to be redesigning much of their
> > underlying infrastructure to provide more abstraction to plug in
> > subsystems (especially in the audio/multimedia department, but not
> > limiting to it) there doesn't seem to exist such an initiative in
> > Etoile (of course I'm not talking about redesigning, but about
> > starting with the right foot). What I'm talking about here
> > especifically is reusing things like gstreamer/phonon (gnome/kde4
> > multimedia subsystems respectively) and in the rare case where such
> > reuse isn't possible a well thought out subsystem should be designed.
> > I don't think I can be of much help here because I haven't worked
> > directly with any of those multimedia kits, but if opening my big
> > mouth means that I should do something I can of course take a shot at
> > it. Btw, AFAIK gstreamer provides a jackd plugin (polypaudio seems
> > like a better default IMHO) and some work on porting it to Windows/
> > Mac OS has been done.
>
> If I don't speak too quickly, gstreamer and Phonon are quite
> different. gstreamer is a multimedia implementation and an API.
> Unlike Phonon which is almost just an API (an abstract mutimedia
> system which can uses various backends like gstreamer for example).
> At this time we have MultimediaKit which is a bit similar to Phonon
> (far less evolved though). MultimediaKit has two backends: gstreamer
> and mplayer iirc. However only mplayer is supported at this time
> because of issue with glib for gstreamer. Yen-Ju may confirm or deny
> this point.
> Now MultimediaKit isn't currently under active development because we
> put our focus on other stuff to do.
>
> Basic sound functionality has recently be moved in SystemConfig
> framework (SCSound class), so MultimediaKit will rely on it to
> provide a richer API and more features. It will continue to implement
> all video related stuff too.
>
> If we decide to move to some new audio API/soundserver for
> SystemConfig and MultimediaKit, this won't be problem since all
> Étoilé applications will only use these APIs for their own sound and
> video related needs. It might be interesting to have backends to
> support audio-only solution like polypaudio/pulseaudio. I don't
> really know…
Multimedia support is something tricky and
we don't have experters to work on it.
So I would try to use as much existing packages as possible.
The sound support in SystemConfig is only for sound volume.
Mixer may be a misleading name, but it is used everywhere,
and refer to /dev/mixer on your system.
The one in SCSound control only the master volume,
which is the hardware volume as far as I understand.
So if you change it, it affect everything, not only Etoile.
It is supposed to be set by user with preference only,
not any other applications.
Applications should use soft volume control in their application
so that it won't affect any other application.
As for alert, probably also NSSound, it is more complicated.
First, we need an audio server.
The main purpose is that every thing can play at the same time.
You don't want system alert sound block what you are listening.
There are a lot of choices out there, like aRts for KDE, or gsnd for GNUstep.
Then we can think about what kind of functionality we need.
I don't think any professional users will use what Etoile provides.
Therefore, we only need to focus on regular users.
I can think of three types of application we will support.
1. Alert sound. It is a short sound and probably in a single audio format,
say wav or ogg. The only requirement is that it must start to
play as fast as possible,
right on user action on UI.
In another word, the overhead must be small.
If we have an audio server, the best implementation is probably
just decode the sound
and feed into audio server.
The volume control of alert sound is also handled here.
Therefore, SystenConfig just provide a number so that we know
what is the volume to
use for alert sound.
2. A player for movie, stream, or most important, DVD.
In short, it is a QuickTime-like application.
I use mplayer for now, and it seems to fit the goal.
3. A multimedia manager. In short, it is a iTunes-like application.
Besides management, it must be able to play
many audio and video format as the player mentioned above.
So it is more like embedding the multimedia player inside the manager.
There are many implementations we can try to achieve this goal.
Then the question ends with which multimedia player/library we want to use.
Again, the easiest one is probably the best one
for Etoile which target regular users.
Most implementation is in GPL, even libraries,
except GStreamer, which is LGPL.
So we don't really have a lot of choice on license.
Users may want to play video in the multimedia manager,
especially short movies and home videos are popular now.
therefore, we need to have an implementation
which support both audio and video.
A lot of good implementation support audio only, unfortunately.
If we use mplayer, we run it in another process with NSTask.
If we use gstreamer, we need to deal with glib run loop with GNUStep's.
So I conclude mplayer is the easiest one, and work fine so far.
Users usually won't use a lot of multimedia player at once.
They probably will keep them open, but only one of them are playing.
So mplayer is not a bad choice in my own opinions.
That is pretty much all I can think about the multimedia support in Etoile.
Yen-Ju
>
> Cheers,
> Quentin.
>
>
> _______________________________________________
> Etoile-discuss mailing list
> [email protected]
> https://mail.gna.org/listinfo/etoile-discuss
>
_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss