Re: Re: Recommended kernel patches for video capture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



>   There are tv tuner cards based on bttv or saa7130/34. Relevant v4l2 
> drivers are available. There is nothing specific in compiling. The 
> drivers are specific. Though u try to work it out in different PC's 
> they are still desktop linux boxes where the processor is not 
> dedicated. Say suppose if u work in X windows it itself requires 8MB 
> ram and some processor power. likewise so many process will run 
> including background processes. These are the reasons for frame 
> dropping. If we try this using a dedicated processor, in any embedded 
> device then there will not be in any frame dropping. 

This is not "applicable".

I've had frame dropping issues myself with a SAA7134 card, so I
investigated the driver and the card itself (on register level).

First: every PCI TV-card works using PCI bus mastering (DMA). So for the
actual capturing of the frames close to no CPU cycles are involved at
all. You can have a system running at 100% load and still receive all
frames without drops. Of course you will need to do something with the
captured frames, like raw writing to disk or encoding.

The reason in general for frames being dropped are:
 - the capturing card not being able to transfer frames over the PCI
bus, e.g. because of high usage and high latency of other cards; if this
is for a short time, you will notice distortion in the picture, for
longer times it shows as dropped frames.
 - the user application not gathering the captured frames quick enough,
causing the PCI busmaster buffers to overrun. Most drivers will cease
capturing though at all, then.

The SAA7134 has an additional issue, and that is that it drops frames
with no good reason. To be clear: the frames are not dropped by the
driver nor the application. It's just the SAA7134 that decides not to
forward a frame. It looks like it's a synchronisation issue, as the
frame dropping occurs more often when reception is poor.

BTW you can never trust the synchronisation of TV cards. Therefore
capturing programs should always explicitely keep/fix a/v
synchronisation. Mencoder does something like that, transcode (cvs) v4l2
import module and nvrec do it too. The video capturing feature of other
programs (like ffmpeg, transcode using v4l, mjpegtools) are actually not
suitable for capturing video directly.

BTW2 a Pentium II should be sufficient to capture full resolution to
mjpeg. You don't need top-level hardware at all.




[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux