|Summary:||Xv ReputImage not called if overlay once entirely off-screen|
|Product:||xorg||Reporter:||Thomas Winischhofer <thomas>|
|Component:||Server/DDX/Xorg||Assignee:||Luc Verhaegen <libv>|
|Status:||RESOLVED FIXED||QA Contact:||Xorg Project Team <xorg-team>|
|i915 platform:||i915 features:|
|Bug Depends on:|
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 email@example.com) 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.