Hi,
For Freevo, we are using clutter, like many I assume, as a canvas for
video. In order to allow for retrace-accurate frame delivery, I would
like to have slightly more control over clutter's redraw process.
It seems what I'm looking for is a signal whose default handler is
_clutter_backend_redraw so that I can attach my own callbacks before and
after it is called.
The pre callback would determine the number of retraces we need to wait
before the next frame, call glXWaitVideoSyncSGI appropriately, and then
return, at which point _clutter_backend_redraw would proceed (in the
common case) directly into glXSwapBuffers().
The post callback would fetch the retrace counter and see if we made our
target or not, adjusting any pts drift as needed.
(I understand of course this would not be good for any behaviours that
may be running. The intention of the above logic is to be used only
when video is fullscreen and nothing else is going on with the stage so
that we can have flawlessly timed video.)
So, three questions:
1. Is such a thing possible with clutter as it is?
2. If not, would a patch be accepted that implements a signal
called 'redraw' to ClutterBackend, allowing one to connect
callbacks to the object returned by
clutter_get_default_backend()
3. If not, is there some alternative approach, equivalent in
functionality, for which a patch would be accepted?
Thanks,
Jason.
--
To unsubscribe send a mail to [email protected]