OK, so which of us should we add to this private thread? I also am working
on a security camera (surprise surprise).
When looking at codecs, I had to choose one that is GPL, as this is a
commercial product - I can't use OpenDivX or DivX4/5. I am currently using
avifile0.6-DivX3.11a, but am considering switching to a DivX3 native linux
encoder. For right now, though, avifile0.6 is giving me decent performance.
It can be changed later with a little work anyway.
VCR is pretty much exactly as you described, Ico... a grabber thread for
video, one for audio, and one to write. It's based on the capturer from
avifile... all pretty much as I would have written it, so I decided why
bother doing it all myself.
If you like, I can send a picture with the frame streams showing how I got
those figures, but basically, just draw four streams, with them out of phase
by the maximum amount... that is, VSYNC in stream 2 is just before VSYNC in
stream 1.. VSYNC in stream 3 is just before VSYNC in stream 2 etc. This
means it takes 1/25 to capture the stream 1 frame, 3/25 to capture a frame
from 1 and 2; 5/25 to capture a frame from 1,2,3; 7/25 to capture a frame
from 1,2,3,4.
This model assumes that the BT878 can reliably pick up the next VSYNC, no
matter how soon it comes. eg, if we capture stream1, frame1, then switch to
stream 2, which is just about to VSYNC, and the 878 can't handle it that
fast, we will have to add another frame delay. A very simple model! I am
trying to find some kind of asynchronous video buffer, and some way of
controlling it from the 878 (GPIO?).
_________________________________________________________________
Join the world?s largest e-mail service with MSN Hotmail.
http://www.hotmail.com