General Idea: ============= _____/ gstv4lsrc.[ch] _____/ \ v4lsrc_calls.[ch] / gstv4lelement.[ch] _/____________/ gstv4lmjpegsrc.[ch] v4l_calls.[ch] \ \ v4lmjpegsrc_calls.[ch] \_____ \_____/ gstv4lmjpegsink.[ch] \ v4lmjpegsink_calls.[ch] I.e., all the files on the right are child classes of the v4lelement 'parent' on the left. * v4lelement handles generic v4l stuff (picture settings, audio, norm/input setting, open()/close()) * v4lsrc, v4lmjpegsrc handle the capture specific functions. Maybe we'd need a v4lmpegsrc too * v4lmjpegsink handles mjpeg hardware playback of video Useful Documentation: ===================== MJPEG/V4L API : ./videodev_mjpeg.h V4L API : /usr/include/linux/videodev.h or /usr/src/linux/Documentation/video4linux/API.html or http://linux.bytesex.org/v4l2/API.html V4L2 API : /usr/include/linux/videodev2.h or http://v4l2spec.bytesex.org/ BSD/Meteor API: /usr/include/machine/ioctl_meteor.h mjpegtools : http://www.sourceforge.net/projects/mjpeg