[MPlayer-dev-eng] new gui
Jan Volf
javol at volny.cz
Wed Dec 21 19:54:07 CET 2005
Quite interesting discussion. Although there was not much reactions
of GUI developers anyway.
So my opinion is that making one universal GUI for all OSes doesn't
seem to be a good idea. All the OSes are so different. Let the
developers for the particular OS do the job but offer them a realy
good player engine that can be perfectly controllable with GUI.
I'll try to express what I (as gui developer) demand from the mplayer:
1. I completely agree with the opinion that the GUI code should be
separated from the player code. The player code should make no
assumption of UI actualy used including CLI. If mplayer team wants
to make a good user interface then let it be CLI but make it
completely replaceable with GUI. And I mean COMPLETELY. The slave
mode in present state does not suffice.
2. The slave mode is not all bad but it needs a major facelift. When
engaged the direct keyboard control should be disabled so the GUI
knows the exact state of player and all keyboard events should be
handled by GUI making need of players own event handler unnecessary.
2.1. It needs standardized way of responses, for example in XML or
other extendable format so it can be easily parsed but won't need
code rewriting each time when output changes.
2.2.The next one irritating thing in slave modes is paused state of
player when it accepts no command but unpause command. It makes
impossible to seek in the movie while in paused mode and do other
things as well.
2.3. It may be good to built up a list of commands and divide them
into actions (play, pause, stepForward, stepBackward, quit) and state
changing commands (changeRate, changeVolume, chnageOSDmode,
changeTime - replacing seek command, etc.) where the state changing
commands must be handled anytime and must allow direct state value
change not just cycling thru unknown number of values.
3. There should be a possibility to output mplayers video to GUI
specified window or view. This is a bit tricky and overlay might not
work on all OSes. This allows GUI to do the necessary mouse and
keyboard event handling instead of mplayer. As long as I know Nicolas
Plourde have done this for Mplayer's binary for OS X in vo_macosx
using shared buffer.
4. Another good thing would be a possibility of outputing text
subtitles to the standard output to let the GUI to render them using
particular OS's text engine. It allows using fonts installed on the
OS and other features of the text engine.
All this suppose running the GUI and mplayer as separate tasks. The
reason is obvious. The GUI will stay responsive and player will
continue to play while tracking the mouse events. It's even possible
to run more than one player for only one GUI if it is needed.
That's all for now. I'll be gled to discuss any point mentioned above.
I'm sorry for long post. Hopefully this will make a good image of
what is needed by GUI developer even for those who never did this
kind of development.
Best regards
Jan Volf
mplayerosx.sf.net developer
More information about the MPlayer-dev-eng
mailing list