Hello,
I have tried many things and now in a need of help I have decided to post here.
Problem:
Capturing MJPG frames using Video4Linux2 API gives me corrupted frames. Some of the frames are fine, but not all. I added some extra logging to the uvcvideo driver which is used by v4l2. And the corrupted data also appeared on that level. In the end I also captured usb traffic using /dev/usbmon, and the corrupted data was still there. Amount of corruption is proportional to the amount of data. Using lower resolution or fever framerate means that the corruption is less frequent.
Hardware:
BeagleBoard xM revision C1.
2 x Logitech C250 webcams.
Some other webcam.
Tested things:
I tried various distributions. Including the original Angstrom, the latest Angstrom, Ubuntu and Arch linux ARM. All of them had this problem.
I also applied this patch https://github.com/RobertCNelson/stable-kernel/blob/master/patches/omap_fixes/0002-Fix-sprz319-erratum-2.1.patch to the kernel coming with arch linux arm. But nothing really changed for me. Not to mention that the same cameras work just fine on various other platforms like my laptop runnning (x86) linux, friends laptop (x86_64) linux and even on a PandaBoard (Arch linux arm).
I want to get this board working properly. So I am open to suggestions on what to try or research next.
Karl