[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