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