[MPlayer-dev-eng] new gui

Benjamin Zores ben at tutuxclan.org
Sun Dec 11 12:03:32 CET 2005


On Sat, 10 Dec 2005 22:22:15 +0100
Guillaume POIRIER <poirierg at gmail.com> wrote:

> > > > - Is gtk the only and *best* choice for this?

I'm kinda sure it's one of the worse, especially the way it is currently done.
IMHO, the gui has to be multiplatforms and GTK definitely isn't.

For the GeeXboX project purpose we've started (a long time ago, something like Oct. 2004)
working on some new gui for MPlayer (for different reasons like time and motivation, the development had partly stopped since March. 2005 however).

We had consider that the gui has to be multiplatform and independant of the video out.
You all think about a gui as GTK/Qt/whatsoever application running over an X server.

My opinion also is that the gui code should have nothing to do in mplayer.c.

We've designed a new library called libmpui (for MPlayer User Interface) that currently
consists of drawing an interface over a video (basically the same approach as the vf_overlay patch from Jason Tackaberry). The interesting point is that it let us have exactly the same interface whether you use XV, VESA, FrameBuffer, DirectX, DXR3 or whatever vo you want.

The interface is completely skinnable. It consists of an XML description file that depicts the whole interface, with differents objects, like screens, texts, images (and other widgets should be added), file browsers and so on ... For each object, you can bind inputs and actions that way
you really can control it as if it was a standalone application.

Here are some screenshots of the current state :
http://geexbox.org/drafts/introducing-mpui.avi
http://tutuxclan.org/down/mpui/mpui%20-%20id3%20tags%20-%20realisesans%20trucages.png
http://tutuxclan.org/down/mpui/mpui.png

It uses no extra software/library than current MPlayer does.
I means that the display is done by libvo, the picture scaling by swscaler, texts using the MPlayer OSD, and files informations grabbed using the -identify routines.

As I've said before, the development is kinda hold on at the moment but I wanted to drop
this mail to present it to you all that way maybe someone can be interested in it or motivated
enough to continue working on. It also features an image viewer.

The goal of course was to be able to use MPlayer has a complete media center but
it has some limitations inherent from MPlayer itself :
- the interface needs to run over a video so basically for now when need to have a small video
running in loop to draw something over.
- when loading a movie, the video is changed and so is the resolution. The menu will scale to need resolution but it would be great to have a fixed menu size when using mpui and only draw videos inside.
- when loading an audio file, you need to use a fake video background to continue having an interface. Besides, the menu will switch to the new streams where it shouldn't. You should be able to open/play/close audio streams (or even video) at runtime without any video out change (would said have a library :)
- we (at the geexbox team) mainly stopped working on it for motivation reasons and problems inherent to MPlayer architecture (like the one i've listed above). We would have love to be able able to make some kinda PVR features (record what you're playing) but that would require some major MPlayer rework (remember my mplayer/mencoder single binary patch).

I think the approach we'd considered wasn't that bad but many things need to be added.
If someone's interested in mpui itself, you can have a look at our sources :
http://www.geexbox.org/archzoom/devel@geexbox.org--2004/mplayer--ui--0--patch-195/libmpui

It works partly but integrating it to MPlayer right now would require a lot of work and
maybe a redesign of parts of MPlayer itself (maybe it's time for G2 ?).
I don't want to agree with Gabucino who posted flames few monthes ago but he was right in some points and adding or changing the gui at current stage is painless.

For some monthes, the MPlayer development really has slow down and i guess that new features
addition won't come anymore with the current architecture design. Or at least, changing the gui right now is useless. Releasing a MPlayer 1.0 version and starting working on new design for sure is a better solution imho.

Well, that was just my .2$ to show you a different interface approach :-)
If someone's interested in mpui, feel free to test it.

Ben

-- 
"My life, and by extension everyone else's is meaningless."
Bender, Futurama




More information about the MPlayer-dev-eng mailing list