> The first is that the BTTV driver or system calls seem to react on SIGINT, > since we use Ctrl-C to stop capturing. This works okay for the MJPEG/zoran > devices but for the BTTV devices (in my case, a Hauppage winTV), it gives > an error "interrupted system call". Is this correct (that the driver is > catching SIGINT signals) and can I stop it? Yes, this is correct. The driver sleeps interruptible until the irq handler signals that the hardware finished the capture. If a signal arrives the signal gets delivered to the application and the system call returns with -EINTR. You have to restart the system call like this: retry: if (-1 == (rc = xioctl(h->fd,VIDIOCSYNC,h->buf_v4l+frame))) { if (errno == EINTR && !alarms) goto retry; } Asking the glibc do this automagically (sigaction.sa_flags |= SA_RESTART) should work too. > Secondly, my winTV only gives me two YUV buffers after the VIDIOCGMBUF. Is > there a way to increase this number? there is a insmod option (gbuffers). > Ohwell, also a question. I van only open() my device once - I'd like to > open it twice to actually see what I'm recording and to record video at the > same time. Are there BTTV-devices that can be opened more than once or is > this a V4L limitation? It is a videodev.c limitation. bttv 0.8.x can handle multiple opens at the same time, but this requires a patched kernel (patches are available from http://bytesex.org/patches/) > At last a question for gstreamer. They use a v4lsrc which can do both > read() and mmap() captures. Can all v4l- (or bttv-)devices do both read() > and mmap()? bttv 0.7.x can do _only_ mmap(). bttv 0.8.x can handle both. Most other drivers support mmap() too because there are quite a few apps which can deal with mmap() only. xawtv tries to use mmap() first, failing that it falls back to use read(). Gerd -- Netscape is unable to locate the server localhost:8000. Please check the server name and try again.