Борьба с Video 4 Linux 2

Сегодня я боролся с pwc драйвером, вернее с интерфейсом Video 4 Linux 2. Поскольку дома из устройств работающих через v4l оказалась только одна камера, не считая ноутбучной, и не считая цифрового фотоаппарата 2000 (!) года покупки, использовался образец Philips SPC 900NC вместе с драйвером pwc из ядра 2.6.18 и pwc 10.0.12-rc1 с ядром 2.6.8.

Пара полезных ссылок, которые должен запомнить каждый:


Теперь имею представление, как этим интерфейсом пользоваться. Написал простенькую программку, которая тут-же гордо сообщила:

Camera capables:
Driver: pwc
Device: Philips SPC 900NC webcam
Bus: usb-0000:00:1d.2-2
Kernel: 10.0.12
Capables:
* capture
* readwrite
* streaming
Formats:
0 (1) Raw Philips Webcam [843274064]
1 (0) 4:2:0, planar, Y-Cb-Cr [842093913]
Current: 640x480 460800 842093913


или с другой камерой, Philips 840K:

Camera capables:
Driver: pwc
Device: Philips 740 webcam
Bus: usb-0000:00:10.0-1
Kernel: 10.0.12
Capables:
* capture
* readwrite
* streaming
Formats:
0 (1) Raw Philips Webcam [843274064]
1 (0) 4:2:0, planar, Y-Cb-Cr [842093913]
Current: 640x480 460800 842093913


А вот дальше началось самое интересное, поскольку опытным путём было выяснено, что VIDIOC_STREAMON и VIDIOC_STREAMOFF останавливает ( или запускает соответственно ) передачу и освобождают канал:

B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0


Этот факт особенно радостен, т.к. например camsource работает так, что драйвер pwc дропает неиспользованные кадры, а канал постоянно занят. Поэтому при подсоединении двух камер к компьютеру на базе Vortex86 обнаружилось, что usb-хост тянет передачу с двух камер в формате 640x480 только при максимальной компрессии, которая сказывается на качестве изображения. Т.е. это открываешь девайс, потом сцапал кадр и затаился на минуту, сцапал ещё...

В то же время, к сожалению, действие флага PWC_FPS_SNAPSHOT не было вообще обнаружено.

p.s. Перечитал этот бред и понял что с согласованием оборотов русского языка у меня действительно плохо.

Комментариев нет: