[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.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
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?
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.
Fixed when a22bc20721bad506d8fa9772b1258568cbffe7d2 (as sent to xorg-devel@lists.x.org) hits an xserver anywhere.
since no-one is taking in the patch.
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.