[MPlayer-dev-eng] xv fullscreen switching bugs

Jindrich Makovicka makovick at KMLinux.fjfi.cvut.cz
Wed Aug 21 18:18:48 CEST 2002


On Tue, Aug 20, 2002 at 10:24:36PM +0200, Felix Buenemann wrote:
> Hi,
> 
> xv fullscreen switching is still buggy, this is a list of bugs I noticed, 
> system is XFree 4.2.0, latest Savage/MX driver and KDE 3.1-alpha1:
> 
> - if I startup with mplayer -vo xv -fs movie and then press 'f' to switch back 
> to windowed, there are no window decorations, if I startup without -fs this 
> does not happen.
> 
> - if I switch from windowed to fullscreen, often some area stays blue 
> (colorkey) and is not set to black, switching some times between fs and 
> windowed usually fixes this
> 
> - if I switch very fast between fullscreen and windowed, the size of the 
> windowed window gets set to the size of the fullscreen area, eg. lets say I 
> used mplayer -vo xv -fs -screenw 800 -screenh 600 it creates a 800x600 
> fullscreen area with the movie at correct aspect, now if I press 'f' it goes 
> to windowed and shows the movie at original size, eg. 512x256, now if I 
> switch very fast between fs and windowed some times, then the windowed window 
> is set to 800x600 and the movie streched to that res (so it has also wrong 
> aspect then).
> so in fs movie is 800x400 + black bars and in windowed it is 800x600 instead 
> of 512x256.
> 
> This is all probably some race condition, timing prob whatever, I leave that 
> to the X11 guys.
> 

see "[MPlayer-dev-eng] [PATCH] x11 & xv fullscreen hack", it's rather a
brute force approach, but in most cases it works. The main problem is that
the information about window sizes is updated in the event handler, while
the fullscreen status variable is changed in vo_fullscreen. The fs switching
generates more events (three on my system) and if you issue more switches
before  all the events are processed, you're screwed. The fs state is set to
0 and then a remaining event from setting to fullscreen arrives, so mplayer
now thinks that you resized the window to the fullscreen size and forgets
the original size. The patch just checks if the window sizes are sane, eg.
when in vo_fullscreen is vo_fs == 1 and the dimensions are less than
fullscreen, vo_fullscreen returns, because the events probably haven't been
processed yet. For vo_fs == 0 vice versa.

The blue strip issue is fixed by clearing the movie window when going fs.

> -- 
> Best Regards,
>         Atmos
> ____________________________________________
> - MPlayer Developer - http://mplayerhq.hu/ -
> ____________________________________________
> _______________________________________________
> MPlayer-dev-eng mailing list
> MPlayer-dev-eng at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng

-- 
Jindrich Makovicka



More information about the MPlayer-dev-eng mailing list