Bug 4653

Summary: Xv ReputImage not called if overlay once entirely off-screen
Product: xorg Reporter: Thomas Winischhofer <thomas>
Component: Server/DDX/XorgAssignee: Luc Verhaegen <libv>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: libv
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 23614    

Description Thomas Winischhofer 2005-09-30 12:30:29 UTC
[From my mail to the xorg list, slightly edited]

Xv's ReputImage is used to ... reput the image. It is, among other places,
called by XVAdjustFrame() to inform the driver about the new coordinates of the
overlay.

If the frame (viewport) is located so that the overlay would not be visible at
all, XVAdjustFrame does not call ReputImage, but does the same as it does if the
driver has not provided a ReputImage function: It stops the video and removes
the port from the window. The latter leads to IsOn being set to XV_PENDING.

Once the overlay is entirely off-screen, even if I pan back so that it would be
(partly) visible, it does not reappear. Why? Because in XVAdjustFrame(), the
eventual call to ReputImage is only executed if IsOn == XV_ON. In case the other
alternative was called previously, IsOn is XV_PENDING as said.
Comment 1 Daniel Stone 2007-02-27 01:28:16 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 2 Daniel Stone 2009-08-31 18:02:26 UTC
not going to be fixed for 7.5 ... anyway, if StopVideo is called, presumably the client's been notified (i haven't checked), so calling ReputImage would definitely violate the principle of least surprise?
Comment 3 Luc Verhaegen 2009-11-11 01:35:59 UTC
StopVideo here being the drivers StopVideo callback. Has absolutely nothing to do with any client.

What Thomas describes is correct, and i have a fix for adjustframe at this time. Still need to fix VT switch.
Comment 4 Luc Verhaegen 2009-11-11 06:57:13 UTC
Fixed when a22bc20721bad506d8fa9772b1258568cbffe7d2 (as sent to xorg-devel@lists.x.org) hits an xserver anywhere.
Comment 5 Luc Verhaegen 2009-11-17 23:38:48 UTC
since no-one is taking in the patch.
Comment 6 Alan Coopersmith 2010-06-18 07:08:09 UTC
Looks like this fix was committed as:
http://cgit.freedesktop.org/xorg/xserver/commit/?id=0e084d8c71e697a5cf5d5d7c749455ae14bd6eb7

so closing the bug.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.