[MPlayer-dev-eng] fixed-vo in VDPAU

Dani Church dani.church at gmail.com
Mon Nov 2 18:12:13 CET 2009


On Mon, Nov 2, 2009 at 10:25, The Wanderer <wanderer at fastmail.fm> wrote:

> As I understand matters, the MPlayer option semantics are effectively a
> type of cascading inheritance of defaults, with the following priority:
>
> If no command or option is given, the compiled-in default will be used
> for all files in a playback session.
>
> If an option exists in a system-wide config file, it will override any
> earlier setting for all files in a playback session.
>
> If an option exists in a user-specific config file, it will override any
> earlier setting for all files in a playback session.
>
> If an option exists in a file-specific config file, it will override any
> earlier setting *for that file only*.
>
> If an option is given on the command line before any filename, it will
> override any earlier setting (including, I think, file-specific config
> files) for all files in a playback session.
>
> If an option is given on the command line after a filename, it will
> override any earlier setting *for that file only*.
>
> If an option is given as a command during playback, it will override any
> earlier setting *for that file only*.
>

In general I think that these semantics are good, and that the command line
semantics don't need any tweaking at all.  But the problem here is that
there is no method for setting a global setting during playback-- and there
are many, many reasons why you'd want that capability.  Without it, in order
to change settings for all files while you're already watching, you have to
quit, look up the command line options, put them back on the beginning of
the command line, restart mplayer, and seek back to both the file you were
watching and your position in the file.  Clearly undesirable behavior.  I
think part of the problem stems from the fact that -fixed-vo currently has
two effects:

(1) It does not reinitialize the VO in between files; visually, it means the
window does not get unmapped and redrawn when switching files, which reduces
or eliminates the delay between sequential files.
(2) It causes some playback-time user window settings to remain unchanged
between files.  This may simply be an unplanned side-effect of (1), but it's
still arguably the most valuable effect from a UI point of view.

I propose that we split this up into two options.  Since there's no UI
benefit to having the VO reinitialize itself except to work around VO bugs,
I think that (1) but not (2) should be the default; this way mplayer
maintains its current behavior but looks a little bit smoother when playing
multiple files.  I think that disabling (1) should be an option like
-reinit-vo (and a counterpart -noreinit-vo to reverse the option).  I think
that -fixed-vo should enable (2) whether or not (1) is in effect, and it
should do so even more aggressively than it does now.  I think that between
files, mplayer should not change window settings like geometry AT ALL-- if
the user plays files of different resolutions with (2) enabled and not in
fullscreen, I think the Right Thing is to play the other files within the
same window, zoomed and letterboxed, just as though mplayer were in
fullscreen mode.  (On a related note, I think that letterboxing on a
non-aspected resize should also be the default whenever -keepaspect is in
effect.)

What do you think of this idea?

-Danielle



More information about the MPlayer-dev-eng mailing list