RE: BTTV read problems

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



Would it be at all possible that someone could clear up the order in setting
up the various structures when doing mmap?

Currently I do...
Set CaptureWindow Settings
Confirm they are correct
Set Picture Settings
Confirm Depth and Palette are correct
Set Channel
Set Tuner to 1 (just to make sure)

After this, I would do read() with my current usb webcam driver, however
using the mmap, the documentation is a bit thin.  It seems to say that I
should do...
fill video_mmap with depth, height width and palette, the same as the
Picture and CaptureWindow settings.
Call ioctl VIDIOCMCAPTURE to set this
Call ioctl VIDIOCGMBUF get details about buffer lenght
Call mmap(0, p_video_mbuf->size, PROT_WRITE, 0, device->Descriptor(), 0) to
get a pointer to the capture area
Finally do ioctl(device->Descriptor(), VIDIOCMCAPTURE, 0) to start capture,

then in my main loop, 
do ioctl(device->Descriptor(), VIDIOSYNC,0)
memcpy from capture buffer to my processing buffer
ioctl(device->Descriptor(), VIDIOCMCAPTURE, 0);
and repeat ad infinitum,

My program doesn't get a valid return result from the mmap() call, it
returns MAP_FAILED instead.

I've re-read the kernel API reference for v4l several times, and even looked
in the bttv-driver.c and videodev.h files but I still don't understand the
order I'm supposed to do all ofthis in in order to make it work.

I'm going to try a new bttv driver, but installing a new kernel is probably
not welcome as we have several custom hardware drivers that have only just
been brought from 2.2 to 2.4 :(  I hate dealing with legacy stuff :(
Ah well, thanks again, here I go :)

Michael Spall
ECM Systems





[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