RFC: Video decode acceleration API
smorovic at gmail.com
Wed Mar 28 08:53:34 PDT 2007
Alex Deucher <alexdeucher <at> gmail.com> writes:
> How about interactions with v4l? I can see that being a common use.
IMO a feature that could fall into this category (v4l interaction) is software
genlock. That could be useful to give external DVB/V4L device, or playback
application, ability to adjust (sync) the clock of CRTC, so that display refresh
rate is synchronised with the external video signal. High-grade equpment usually
supports hw genlocking (such as Nvidia Quadro's), but for most hardware this
would have to be done in software. CRTC driver would support readjusting clock
rate based on software sync events (clocks) generated possibly by V4L/DVB driver
or playback application. (I suppose that, to avoid problems, syncing should be
possible only if refresh rate of incoming signal is roughly the same as of
display, and video application should use randr to readjust first if needed).
Maybe a possible way to deal with this is to recalculate CRTC frequency from a
rate of incoming frames that are placed in memory (or try to keep number of
frames in VRAM buffer constant without skipping frames).
I started thinking about this when I couldn't get rid of regular
tearing/skipping with stream shown on my radeon card even if display refresh
rate rate was set exactly to PAL TV mode (25Hz interlaced)- it was a TV
connected directly to VGA outputs using a custom SCART cable, but same should
apply to TV-Out. It actually depended on which channel was watched as they tend
to have slightly different clock (this isn't a problem with e.g. full featured
DVB cards which have their own synced TV output).
More information about the xorg