Интересно ваше мнение, хотя может кто знает ответ :)
Ситуация такая. Работаю с камерой при помощи Video4Linux1. На ней написано, что максимальный fps - 25. (Камера стоит 3к, поэтому о ее говноустройсте речи быть не может)
Измерив время между запросами VIDIOCMCAPTURE и VIDIOCSYNC, получаю в среднем примерно 15 мс (а должно быть 40!).
Это значение колеблется от 1.1мс до 75 (может и больше - тестил всего 10 секунд). Но не важно, среднее время все равно меньше положенного.
Вот а почему так? Для замера времени пользуюсь gettimeofday(). Слышал, у нее погрешности большие, но вроде бы отличить большие и меньшие затраты времени она может. Можно, конечно, влепить слип какой-нибудь, но интересна сама причина такого поведения.
Фактически, количество количество обновляемых кадров экрана в программе, - 50. Или может я не совсем те запросы использую? Есть предположение, что с камеры несколько раз считывается один и тот же кадр. Тогда как проверить, что текущий кадр уже считывался?
PS Все запросы можно посмотреть здесь, лично я нужного не смог найти =(
http://lxr.free-electrons.com/source/include/linux/videodev.h?v=2.6.32