Re: Re: v4l2 + select() + read()

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



Alan Cox wrote:

You want to support read so you can do things like

cat /dev/video | stream2jpeg| magicperlbits
and the like

Ah, you've hit on my biggest gripe with V4L read: there is no way to set the format or resolution, and even if you don't care, there's still no standard way to find out how the data you just captured is formatted. One solution is to write a suite of tiny apps that make various V4L ioctls, and assume that the driver saves the states of these settings across open/close.

This is what ov511 used to do, but I got many complaints like "if I run vidcat before I run gqcam, the image comes out different". Now I reset the video parameters on open so that things are at least consistent, but this effectively makes it impossible to write a hardware-independent read-based script.

The solution, IMHO, is to do something like "vidcat -d /dev/video0 -s 352x288 -f jpeg | magicperlbits", and forget about read altogether. Do you see any disadvantage to that?

If you have the entire frame in the internal buffer then that case becomes
easy but the remembering where in the frame you are cases do become trickier
(imagine a perl script reading the top of the frame removing the black from
letterboxing and skipping the bottom by using block reads)

Agreed. Gerd kindly reminded me that partial reads are useful for more than just getting at the data as soon as possible. I'll implement them in ov511 (depending on how this discussion pans out).

Im assuming the library is something like

	convert_fromfmt_tofmt(from, to

Not to nitpick, but wouldn't this be better:

              convert(src, srcformat, dest, destformat)

That way, new formats could be added without changing the apps' code (or even without recompiling it if we use a shared lib)

Anyway, your idea is much better than what I had in mind. I was thinking along the lines of:

              grab_frame(buffer, desired_format)

but that takes a lot of control away from the app. I don't want anything to stand in the way of app developers using the library. They will have to if they want ov511 support.

--
Mark McClelland
mmcclell@xxxxxxxxxxx








[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