> 1. user does select() to wait for a frame to be ready. > 2. select polls until it finds a frame that's done and return POLLIN > 3. interrupt handler goes and unmark that frame as ready and start capturing > a new frame into that same buffer. Wrong. You might capture to *another* buffer. But the driver must not capture to the same buffer until it is requeued with QBUF. Gerd -- #include </dev/tty>