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

Dirk Porezag porezag at yahoo.com
Sun Sep 26 12:08:11 CEST 2010


> Thu 23 Sep 2010 09:12:11 PM CET
> Von: 
> "Reimar Döffinger" <Reimar.Doeffinger at gmx.de>> On Thu, Sep 23, 2010 at 
>09:11:18AM -0700, Dirk Porezag wrote:
> > xmga video-out support is broken in the current SVN release in GUI 
>(gmplayer)  
>
> > mode. Playing a video will crash since "vo_window" is not set up properly. 
>Also, 
>
> > after fixing this, moving the window across the screen also doesn't work.  
>The 
>
> > patch fixes both issues, changes are rather trivial but I'm happy to  discuss 
>
> > them if needed.
> > 
> > 
> > There still is an issue with extensive  flickering in full-screen mode that 
>is 
>
> > neither addressed nor caused by this  patch - I didn't have time yet to look 

> > into this.
> 
> The x11_common.c patch unfortunately is not ok, setting resize for a movement
> is a bad idea and causes flickering and other issues with other VOs.
> Maybe add a VO_EVENT_MOVE or so...

I have a hard time verifying that the submitted patch actually causes the 
flickering. While I agree that VO_EVENT_RESIZE may be a bit too much for a move, 
the SVN version as of May 16th 2010 (last working version I used) did exactly 
this. In fact, the patch just reinstates the behavior that was present until a 
few months ago! I don't see how flickering would be caused by this patch without 
having an actual change in geometry just before 
libvo/x11_common.c:vo_x11_check_events() is called

I have modified my patch to only generate a VO_EVENT_EXPOSE which is sufficient 
to get the correct bevavior, at least for vo_xmga. But IMHO the critical point 
here is not my change in libvo/x11_common.c:check_resize(). Even without my 
patch I have flickering in full screen mode. After digging a little deeper, I 
have found that my flickering problem is caused by calling check_resize pretty 
much always before the main event processing loop in 
libvo/x11_common.c:vo_x11_check_events():
#-----------------------------
if (WinID > 0)
        ret |= check_resize();
#-----------------------------
This line was introduced after May 16th 2010, I haven't yet checked when and why 
but when I deactivate it, all my flickering problems go away (but - as already 
said - they are already present if I use the current unpatched HEAD version of 
libvo/x11_common.c).

Enclosed is my modified patch, I'm aware of the fact that this will probably 
need further discussion. I'll try to find the revision where the changes 
discussed above were introduced, maybe this will shed some light on the whole 
issue.

Regards,
Dirk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: xmga_fix.patch
Type: application/octet-stream
Size: 1277 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20100926/51620c38/attachment.obj>


More information about the MPlayer-dev-eng mailing list