I'm trying to get video capture from all 4 inputs of a bttv card simultanously ( multiplexed). I've been doing this under FreeBSD/OpenBSD following way: switch_input(0) capture_frame(0) ... ... ... switch_input(3) capture_frame(3) This works ok, although the 25fps dives to 2-3fps with all 4 inputs capturing. I've got pthreaded mmaped capture going under Linux and I'm wondering how I should go about this input switching problem? Is there a better way to archive this under Linux? I'm gonna test this method tonight: [background capture thread] VIDEOCSYNC( buffer# ) //wait for imaged to be captured memcpy from mmaped region to my_buffer[input#] VIDIOCSTUNER( next input# ) VIDEOCCAPTURE //async grab frame into next buffer Is there any voodoo-magic/c that I can do to get linux to sync to the inputs faster? Would using VIDEO_CAPTURE_ODD or VIDEO_CAPTURE_EVEN and recording < 300 lines speed this up. I've tried it under FreeBSD with out any extra speed. I've noticed some refereces to 50/60fps capture in the Brooktree specs and in the FreeBSD/OpenBSD drivers. Would I need to use some special cameras with external sync signals to get this magical speed? What extra capabilites does v4l2 for Bt878? Apart from the great API cleanup I can't really tell.