gstreamer/sys/v4l
Ronald S. Bultje 6ba3abb3a5 Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make...
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.
2003-05-21 06:33:18 +00:00
..
gstv4lelement-marshal.list Unification of the way to speak to v4l2 and v4l elements... Also fix a segfautl when doing gst-inspect v4l2src 2003-03-02 21:58:52 +00:00
gstv4lelement.c Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
gstv4lelement.h Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
gstv4lmjpegsink.c Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
gstv4lmjpegsink.h Convert from pthreads to GThreads. Untested. BBB: feel free to revert this if it's horribly broken. 2002-11-02 21:29:10 +00:00
gstv4lmjpegsrc.c Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
gstv4lmjpegsrc.h Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
gstv4lsrc.c Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
gstv4lsrc.h Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
Makefile.am Unification of the way to speak to v4l2 and v4l elements... Also fix a segfautl when doing gst-inspect v4l2src 2003-03-02 21:58:52 +00:00
README Minor updates 2001-12-24 21:43:31 +00:00
TODO Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
v4l-overlay_calls.c Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
v4l_calls.c Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
v4l_calls.h Unification of the way to speak to v4l2 and v4l elements... Also fix a segfautl when doing gst-inspect v4l2src 2003-03-02 21:58:52 +00:00
v4lmjpegsink_calls.c Fix v4l/v4l2 compilation problems 2003-03-09 15:07:53 +00:00
v4lmjpegsink_calls.h Various fixes 2002-01-31 22:22:42 +00:00
v4lmjpegsrc_calls.c Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
v4lmjpegsrc_calls.h Various fixes 2002-01-31 22:22:42 +00:00
v4lsrc_calls.c Some final fixes for the v4lsrc elements. remove software sync thread (use GST_ELEMENT_THREAD_SUGGESTED instead) make... 2003-05-21 06:33:18 +00:00
v4lsrc_calls.h Un-globalize variable 2003-05-14 19:54:37 +00:00
videodev_mjpeg.h New video4linux plugins, can also handle hardware JPEG devices. First check-in, probably has lots of bugs which will ... 2001-12-23 15:31:15 +00:00

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