capturing on several input at once

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



Hi there,

I'm using bttv-0.7.91 (heavily modified) and kernel-2.4.18 (modified
too). My card is a ProVideo PV143 with 4 video inputs (and one video
output) and only 1 bt878a chip.

I wanted to plug 4 cameras into those 4 video inputs and grab
simultaneously all 4 video inputs. To achieve this, I use bttv with the
option "gbuffers=8". I use buffer 0 & 1 for input 0, buffer 2 & 3 for
input 1, buffer 4 & 5 for input 2 and buffer 6 & 7 for input3 (I switch
from one video input to another at the beginning of even buffers).

To solve the problem of multiple open, I insmod a special module (called
video_mux) that open() /dev/video0 and create
/proc/video/mux/video0/input0 ... input3 which you can use with the regular V4L API (or so).

Everything is now properly working. But I had some hard difficulties
with PCI (making either black lines on the grabbed images or mixing frames from
several inputs). So I'd like to know more about the following lines in bt848_muxsel:

	btand(~(3<<5), BT848_IFORM);
        mdelay(10);
        btaor((bttv_tvcards[btv->type].muxsel[input]&3)<<5, ~(3<<5),BT848_IFORM);

Questions:

- why it's needed to write 00 in the MUXSEL registers?
- what's the purpose of mdelay(10)? 
- where does the value 10 (10 ms) comes from? Is it related 2 video
signals?

I reduce the mdelay(10) which is 10 ms to 1ms since one image is 40ms.

Any ideas is welcome. I'll send a patch on this list if some people are
insterested (but like I said I made all kinds of modification based on
bttv-0.7.91).

Benoit





[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