mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 18:51:11 +00:00
6ba3abb3a5
Original commit message from CVS: Some final fixes for the v4lsrc elements. * remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) * make all src elements threadsafe * fix num_buffer argument setting in v4l2src (VIDIOC_S_PARM) * re-add bufsize (RO) for v4lmjpegsrc * fix the A/V sync calculation in all elements (spvf=GST_SECOND/fps, not GST_SECOND*fps) * probably some more crap.... With all this, it actually works quite well. The TODO files describes the next steps in order to make a full-featured video recorder based on these elements and GStreamer (bottom). Making a simple recorder should be fairly easy now, btw. |
||
---|---|---|
.. | ||
gstv4lelement-marshal.list | ||
gstv4lelement.c | ||
gstv4lelement.h | ||
gstv4lmjpegsink.c | ||
gstv4lmjpegsink.h | ||
gstv4lmjpegsrc.c | ||
gstv4lmjpegsrc.h | ||
gstv4lsrc.c | ||
gstv4lsrc.h | ||
Makefile.am | ||
README | ||
TODO | ||
v4l-overlay_calls.c | ||
v4l_calls.c | ||
v4l_calls.h | ||
v4lmjpegsink_calls.c | ||
v4lmjpegsink_calls.h | ||
v4lmjpegsrc_calls.c | ||
v4lmjpegsrc_calls.h | ||
v4lsrc_calls.c | ||
v4lsrc_calls.h | ||
videodev_mjpeg.h |
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 http://roadrunner.swansea.uk.linux.org/v4l.shtml V4L2 API : http://www.thedirks.org/v4l2/ BSD/Meteor API: /usr/include/machine/ioctl_meteor.h mjpegtools : http://www.sourceforge.net/projects/mjpeg