[MPlayer-dev-eng] [PATCH] Fix for broken vo_xmga support in GUI mode

Dirk Porezag porezag at yahoo.com
Sun Sep 26 22:52:21 CEST 2010


Thanks for the positive feedback :-) - I'll try to do most of the work but I 
have limited time to do so at the moment ...

To further clarify the issue: Most problems I've talked about only arise with 
the GUI version (gmplayer). Thanks for reminding me, this actually helps with 
pinpointing the issues.

The good news is that I have found the source for flickering when using 
"gmplayer -vo xmga" in fullscreen mode. 
libvo/x11_common.c:vo_x11_update_geometry() will set vo_dwidth and vo_dheight to 
the "native" fullscreen resolution (e.g. 1280x1024) which is the overall space 
available to mplayer. But then libvo/mga_template.c:set_window() will redefine 
the variables to reflect the ASPECT-RATIO-CORRECTED resolution (e.g. 1280x960 
for a 4:3 movie). Since set_window() is triggered as a result of a VO_RESIZE 
event, vo_dheight is being switched back and forth between 960 and 1024, causing 
a VO_RESIZE event with every frame and thus, extensive flickering.

I assume that the handling in mga_template.c:set_window() is incorrect but 
before I do something stupid please answer me the following questions: 

1. What's the exact meaning of vo_dwidth/vo_dheight and 
vo_screenwidth/vo_screenheight? Size of the window available to mplayer (e.g. 
real fullscreen in fullscreen mode) or the size of the movie on screen 
(excluding potential "blacked out" areas)? 

2. What should these values be in fullscreen mode?

Thanks,
Dirk



----- Ursprüngliche Mail ----
> Von: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
> An: mplayer-dev-eng at mplayerhq.hu
> Gesendet: Sonntag, den 26. September 2010, 15:15:42 Uhr
> Betreff: Re: [MPlayer-dev-eng] [PATCH] Fix for broken vo_xmga support in GUI 
>mode
> 
> On Sun, Sep 26, 2010 at 05:18:10AM -0700, Dirk Porezag wrote:
> > Reimar, I  completely understand your problem with people like me who are 
>trying 
>
> >  to fix issues in code they don't completely understand, for this reason I'm 

> > grateful for your explanations.
> 
> Sorry, I didn't mean it like  that. I just wanted to make real clear
> what the problem is.
> You're new to  the code and I know there's a lot of implicit/undocumented
> knowledge you just  can't have.
> 
> > As for your question: with "-fs" the current version  doesn't even initialize 
>in 
>
> > fullscreen mode with vo_xmga. But is also  doesn't with vo_x11 or vo_xv! At 
>least 
>
> > for me. Can you confirm this?  The SVN version as of 2010-05-16 had it 
>working 
>
> > for vo_xv and vo_xmga  but not for vo_x11.
> 
> Hm, are you testing command-line mplayer or only  gmplayer? The Gui isn't
> really supported, though I'll take a little bit of  time to fix things if
> I feel like it.
> 
> > At first sight, vo_dwidth  etc. is initialized in libvo/vo_xmga.c:config(), 
>also 
>
> > I'd expect that  the first call to 
>libvo/x11_common.c:vo_x11_update_geometry() 
>
> > should  take care of setting these variables if they are not initialized 
> >  directly. Looks like this needs some further digging.
> 
> Probably yes, the  issue is likely to be somewhere around there.
> I'm really happy to help, but  you would still have to do the biggest part of 
>the
> work since I don't have  the  hardware.
> _______________________________________________
> MPlayer-dev-eng  mailing list
> MPlayer-dev-eng at mplayerhq.hu
> https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
> 




More information about the MPlayer-dev-eng mailing list