[MPlayer-dev-eng] [RFC] keep fullscreen mode over aspect, file etc. change if set by user

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Thu Jun 28 19:12:28 CEST 2007


Hello,
On Thu, Jun 28, 2007 at 05:07:44PM +0300, Ivan Kalvachev wrote:
> 2007/6/27, Reimar Doeffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de>:
> > Hello,
> > On Tue, Jun 26, 2007 at 09:19:32PM -0400, The Wanderer wrote:
> > > Reimar Döffinger wrote:
> > > > Please test and comment attached patch.
> > >
> > > On limited testing: it does as described for me, but with the
> > > unfortunate side effect of removing the ability to have the previous
> > > behavior if desired. Make this an option (preferably disabled by
> > > default, though that's not absolutely required), and unless more
> > > negatives show up it has my approval for the little that's worth.
> >
> > I don't believe the old behaviour to be desirable enough to keep.
> > Note that per-file -fs/-nofs still works as long as you don't change the
> > setting during playback.
> > If anything, I'd advocate a "reset display" command that is also useful
> > if you accidentially resize the video.
> 
> Just by looking at the patch.
> I don't see where VO_USER_OVERRIDE_POS flag is set and where it's
> user_x/y parameters are filled.

Not yet, I haven't figured a really good way to separate changes in
window position caused by use from those caused by the user (well,
actually I have an idea but not yet implemented and it should be done
differently and in another patch). I left them in there to make it
easier to see why I chose this design.

> Also I'd have too see the actual code
> where vo_width/height initialization  are removed, but it doesn't look
> right.

Should not cause any problems because they are also set in ..._nofs_sizepos,
except for -wid where IIRC they are read via XGetGeometry.
Nevertheless the only reason for them is because setting them this early
breaks fullscreen-switching with -fixed-vo.
Though to be honest I think the better fix is probably to remove
> if (vo_dwidth != vo_screenwidth && vo_dheight != vo_screenheight)
>    return;
from the vo_x11_fullscreen function (and the similar one for switching
to fullscree), I think they break more than they fix.

[...]
> I don't like the current approach as it requires additional code for
> each vo that wants this kind of behavior, creating huge non-intuitive
> differences among vo's.

Well, instead of adding code to the vos, a different approach would be
adding a "int user" parameter to vo_x11_fullscreen that will execute
this new code if set to 1 and behave as before if it is 0.
Would that sound better to you?
It is still ugly insofar as it only affects X11 vos, but I do not really
like the alternatives of hacking this into vf_vo or the option parser
code (probably will result in a very bloated and/or hackish approach),
do you see any of these as clearly better? And why?

Greetings,
Reimar Döffinger



More information about the MPlayer-dev-eng mailing list