As far as I can gather from this forums, the provider allows the V4l system to DMA directly to a DirectFB surface.
In theory yes.
Unfortunately, Video4Linux-1 does not allow you to *capture* to video memory (ie. with notification of a frame change), you can only capture to system memory.
The Video4Linux-DirectFB provider, however, misuses the overlay feature (which writes to video memory) to get the data anyway. Unfortunately, you don't get a proper notification on a frame change, this is what the bogus 20ms thread is for.
So there is no synchronisation beetween the "capture" process and the blitting to the screen.
A few questions
1) Will this allow v4l DMA to the TVout surface on a G400/450/500?
I've recently improved the DirectFB-Videoprovider to support Video4Linux-2, too. There, it's possible to capture to video memory and have proper frame notification.
The "dvb-kernel" CVS driver for saa7146 based video capture cards currently supports this. I've mailed with Gerd Knorr recently about these improvements, they should be available in bttv and saa7134 now, because all these drivers rely on the same video buffer handling module named "video-buf". But I cannot tell for sure.
This basically works (tested on my local development platform with a DVB-S card and a G200), but of course much more testing is needed.
2) How does the system deal with clocking differences between the capture
card and the tvout system?
There is nothing you can do to force the video capture and the surface display to be synchronized. You need to provide multiple surfaces (ie. capture buffers), where the video capture can write frames to, then you need to flip/blit these surfaces synchronized to the tv out vertical blank.
This is currently *not* done. Although the Video4Linux-2 part uses multiple capture buffers, all capture buffer essentially point to the same surface memory. So you'll notice the usual tearing artifacts.
Neil
This is currently work-in-progress and you're invited to participate and improve things. 8-)
CU Michael.
--
Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe directfb-users" as subject.
