hello. its me again with another newbie question. im writing a tv program, and am having trouble capturing data using mmap (bttv driver from kernel 2.6.0-test2, bt 878 based hauppauge card). it seems that if i use the VIDIOCSYNC ioctl to sync with the video card writing to the memory, i get a lot of empty spaces in the frame (black if i memset it to 0 before each VIDIOCMCAPTURE, or the data from the last time it was written to if i dont). the larger the capture dimensions are, the higher the percentage of the frame is missing. it seems to me (and i dont really know exactly how the driver or the hardware works) that the VIDIOCSYNC ioctl is forcing the video card to finish copying the frame, instead of just waiting to return until the video card is done (which is what i want it to do). i tried adding a usleep for 1/30th of a second between the VIDIOCMCAPTURE and the VIDIOCSYNC calls, hoping that it would at least reduce the amount of missing frame, but it didnt work. currently i am syncing by checking the return value of VIDIOCMCAPTURE, to see if the previous frame is finished before drawing it, but that uses all the available cpu time (since its a while() loop that just spins), and i would like to avoid that. so, is this the expected behaviour? am i doing something wrong (i can post code if needed)? or is this a bug that i should be reporting? thanks for your help (or at least reading this far) thomas spiralman@xxxxxxxxxxxx