I want to access the Pi camera with as little CPU overhead as possible.
This is because I want to try a bit of real-time image detection/processing.
The camera doesn't expose a /dev/video* device. What's wrong with Video4Linux2?
Looking around, I found the userland tools (now open source,) followed by the picam "library" (which doesn't build a linkable library, but can be cannibalized.)
That seems to use a media access library called MMAL. That, in turn, seems to, perhaps, use the media access standard OpenMAX -- but it also makes reference to videocore APIs. Documentation seems to get very scarce here. Do the VideoCore libraries actually implement the IL or DL layer of the OpenMAX specification?
Poking around in userland-master, I find a directory called vcinterface/ but that contains just three files, and they make reference to include files that aren't included with the distribution (such as "vc/intrinsics.h")
Is it the case that the MMAL API is actually the lowest-accessible layer for accessing the Pi camera?
Googling for "what is linux mmal" finds nothing, really, except a bunch of RPi related use cases, so this library seems quite narrow in focus.
Which makes me wonder: Why MMAL? If VC is intended to be OpenMAX, then what's wrong with the AL of OpenMAX?
Am I missing something, or should I assume MMAL is the lowest-available layer, and documentation is largely "read the source, and the generic MMAL Doxygen on the MMAL 'My Project draft version 0.1' web site"?
http://www.jvcref.com/files/PI/documentation/html/
Note that I'm not complaining, I'm just expressing confusion about what the right starting point is.
