[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