Xv Reput/Reget behaviour changes

Luc Verhaegen libv at skynet.be
Sat Oct 30 05:57:25 PDT 2010


On Fri, Oct 29, 2010 at 09:18:56PM +0300, ville.syrjala at nokia.com wrote:
> I'm trying to eliminate some rather nasty looking on/off blinking
> that's bothering my video overlays.
> 
> The xfree86 xv code hooks into ClipNotify, WindowExposures and
> AdjustFrame and does something a little different in each of them.
> I tried to decipher the intention of the original code, but even
> after trawling through the xfree86 cvs, I was unable to find any
> explanation for most of the differences. I suspect the code reached
> it's current state simply due to some ad-hoc copy pasting in an
> effort to fix some specific issues.
> 
> So I just gave up on the history and tried to think what would make
> the most sense for each case and did that. The end result is that
> Reput/Reget is done in most cases if the window is visible,
> StopVideo is done if the window is invisible, and if ReputImage
> isn't supported the port is removed from the window.
> 
> With these changes most of the blinking is gone. There is still at
> least one case left though. Window (un)redirection does an internal
> UnmapWindow+MapWindow cycle which causes ClipNotify to get called with
> visibility = NotViewable. If anyone has a suggestion how to eliminate
> that problem without a majore rewrite, I'd be happy to try it.
> 
> I'd also like the overlays to track RandR state properly so I added a
> new hook 'ModeSet' that gets called when something interesting happens.
> I just realized that I should probably call it from
> xf86DisableUnusedFunctions() as well. Hmm, actually it looks like
> xf86DisableUnusedFunctions() already has this crtc_notify hook I could
> maybe use. Would there be objections to adding more calls to that
> hook from set_origin (and perhaps some other mode setting functions)?
> 
> Also CCing Luc since he did something for xf86XVAdjustFrame at some
> point in the past...

Hi Ville,

Since i have a rather busy time now (family visits, and then visiting 
the nokia family later next week), i will only be able to review this 
properly on the train over to the munich airport on thursday. Sadly, i 
will not be able to give this code a run on a reputimage capable driver 
in at least two weeks (i am not dragging a unichrome over to helsinki 
:))

The modeset hook does make me frown, that is a serious addition to the 
api, which will make backwards compatibility (of for instance the omapfb 
driver) impossible. I am not sure whether this is really necessary. Can 
you explain why this is needed and why driver internal modesetting 
cannot handle this?

Luc Verhaegen.


More information about the xorg-devel mailing list