MPRIS 1.0

Stanislav Brabec sbrabec at suse.cz
Thu Mar 27 08:52:44 PDT 2008


James "Doc" Livingston wrote:

> For example, I work on Rhythmbox which is a 'library-based' player, but
> these comments would apply to several other similar players. For such
> players, what should the tracklist refer to? The entire library, the
> currently selected part of the library (maybe a playlist), a queue of
> upcoming tracks (c.f. iTunes' party shuffle, for those player which have
> such a thing)?

Yes, it is the problem I am thinking about. I don't know, how to
abstract play lists of different players.

> > - Applications may want to broadcast "just started to play new
> > song" (for example pidgin does the same when it gets new message and is
> > configured so), "new medium was inserted".
> 
> That signal is part of the Player object in the MPRIS spec, so I guess
> the application could implement that saying it doesn't support
> next/previous, and not doing anything if the play/pause method is
> called.

> That said, how many media players would want to send that signal without
> having some basuc playback control?

Different D-Bus targets may want to listen and control.

For example daemon, which control small display on PDA is only
interested on "just playing" signals.

Mobile phone daemon is not interested on any signals (and even not
interested on application, which actually plays), and it wants to pause
(or mute, if pause is not supported) all players, when it gets RING
signal from GSM module (well, not completely, if desktop state is "do
not disturb", then it should not do anything).

> > - Missing support for advanced mixer settings: Bass, Breble, 3D,
> > External Amplifier power on/off.
> 
> This sounds much more like the properties of your sounds card's mixer
> than part of a media player.

Partially it affects also MPRIS:

Player 1 gets Mute signal. Player 1 Mutes PCM channel of mixer.
Player 1 quits, Player 2 Launches. Player 2 gets Volume Raise signal.
Player 2 raises Master Volume and nothing happens, system is still
muted.

Actually, there is a problem, that player knows the channel it uses for
playing (PCM, PCM2, CD analog). Mixer application knows to control mixer
levels. Nothing knows the sound routing.

For example my PDA remote handler urgently needs a daemon, which will
know, which volume should be just now controlled by the remote (PCM,
Headphones, Speaker).

MPRIS effort could be considered as a part of wider set of standards of
future devices:
http://www.freesmartphone.org/mediawiki/index.php/Standards/OpenDeviceDaemonAPI
(Still in phase of thinking.)

> I don't know of any media players which
> turn your external amplifier on and off.

Me too. It were random ideas of missing functionality somewhere. There
should exist something like "device daemon" - something like HAL
extension, which will understand the concrete hardware better than any
player can. Missing of such generic API causes many problems.

It needs further discussion, which part of subsystem should implement
it. Maybe it's not interesting for MPRIS.

I am thinking about following scenarios:

- Codec itself has equalizer support, but player is not aware, that
sound card has its own equalizer as well. The result us double
equalization.

- Player changes volume via PCM, but ALSA routes signal via PCM2, so
volume change has no effect.

- Player plays, but amplifier is turned down.

-- 
Best Regards / S pozdravem,

Stanislav Brabec
software developer
---------------------------------------------------------------------
SUSE LINUX, s. r. o.                          e-mail: sbrabec at suse.cz
Lihovarská 1060/12           tel: +420 284 028 966, +49 911 740538747
190 00 Praha 9                                  fax: +420 284 028 951
Czech Republic                                    http://www.suse.cz/



More information about the xdg mailing list