Re: lml33+lavtools video imperfections

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



Hi Steve,

On Fri, 2003-11-21 at 22:11, Steve Tell wrote:
> Does "couldn't handle the throughput" relate mainly to overrunning the
> pci-bus DMA bandwidth to memory that the card can get in a particular
> system, Or does the zoran's jpeg encoder hardware itself get confused when
> a picture is too complex?

DMA. There's apparently some settings on the card that influence this.
I've seen some "private" PCI settings on the Iomega Buz (thanks to the
Iomega engineers for giving me this data ;) ) that affect throughput.
Something tells me that the DC10+ also has these settings. The win32
driver definately has better throughput than ours (this is noticeable in
full-screen overlay). However, without proper datasheets, this is hard
to find out myself. Then again, our driver is much more stable and gives
better quality capture compared to the win32 driver, so I don't really
see much of an issue here (yet). ;).

> Another error I see sometimes is "timeout syncing on a buffer" which
> causes lavrec to die.  This happened a lot with -d2 320x240ish capture
> from VHS tape until I turned on my VCR's timebase corrector.  I never saw
> it with -d1 full-screen-interlaced camera input, so this error seems
> related most strongly to bad input video is that true?

Yes. The JPEG codec (zr36060) cannot handle that, unfortunately.

> Is hacking on (lib)lavrec to make it restart when a "timeout" occurs 
> likely to be fruitful?  I'm interested in doing live-performance recording 
> from a camera, where dropping out for even a half second a few times 
> an hour would be bad, but much more tolerable than aborting entirely
> and requiring manual intervention.

That would probably work, yes. The driver used to have such code
("restart code"), but I removed it because I personally don't like that
in the kernel. When a timeout occurs, it's up to the user to tell us
what to do here. The error will always occur in MJPIOC_SYNC, the return
value will be -1 and errno will be set to ETIMEOUT (the driver does all
this). Lavrec should simply flush all buffers (MJPIOC_QBUF_CAPT with -1
as argument) and restart capturing (MJPIOC_QBUF_CAPT on all buffers).
I'd be very interested in such code, and many users with me. ;).

Ronald

-- 
Ronald Bultje <rbultje@xxxxxxxxxxxxxxxxxxx>
Linux Video/Multimedia developer




[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