[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
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 email@example.com) hits an xserver anywhere.
since no-one is taking in the patch.
Looks like this fix was committed as:
so closing the bug.