gstreamer/sys/v4l2
Rob Clark ff5494046a v4l2sink: special handling for cases gst_buffer_make_metadata_writable()
Special case check for sub-buffers:  In certain cases, places like
GstBaseTransform, which might check that the buffer is writable before copying
metadata, timestamp, and such, will find that the buffer has more than one
reference to it.  In these cases, they will create a sub-buffer with an offset=0
and length equal to the original buffer size.

This could happen in two scenarios: (1) a tee in the pipeline, and (2) because
the refcnt is incremented in gst_mini_object_free() before the finalize function
is called, and decremented after it returns..  but returning this buffer to the
buffer pool in the finalize function, could wake up a thread blocked in
_buffer_alloc() which could run and get a buffer w/ refcnt==2 before the thread
originally unref'ing the buffer returns from finalize function and decrements
the refcnt back to 1!

This is related to issue #545501
2010-12-29 11:46:41 -06:00
..
.gitignore add cvsignores 2003-09-11 19:17:02 +00:00
gstv4l2.c v4l2src: add controlable colorbalance parameters 2010-09-10 17:00:58 +03:00
gstv4l2bufferpool.c v4l2: fix race condition 2010-12-29 11:46:41 -06:00
gstv4l2bufferpool.h v4l2sink: Add support for blocking dequeue. 2010-12-29 11:46:40 -06:00
gstv4l2colorbalance.c sys/v4l2/Makefile.am: Fix makefile, list libs in stack order. 2006-09-26 13:18:06 +00:00
gstv4l2colorbalance.h Add -Wmissing-declarations -Wmissing-prototypes warning flags 2010-03-17 18:23:28 +01:00
gstv4l2object.c v4l2: re-enable x-overlay support 2010-12-29 11:46:41 -06:00
gstv4l2object.h v4l2src: add controlable colorbalance parameters 2010-09-10 17:00:58 +03:00
gstv4l2sink.c v4l2sink: special handling for cases gst_buffer_make_metadata_writable() 2010-12-29 11:46:41 -06:00
gstv4l2sink.h v4l2sink: add properties to control crop 2010-12-29 11:46:41 -06:00
gstv4l2src.c v4l2: re-enable x-overlay support 2010-12-29 11:46:41 -06:00
gstv4l2src.h v4l2src: add controlable colorbalance parameters 2010-09-10 17:00:58 +03:00
gstv4l2tuner.c Fix comparison of the tuner norms 2009-01-30 14:42:44 +01:00
gstv4l2tuner.h Add -Wmissing-declarations -Wmissing-prototypes warning flags 2010-03-17 18:23:28 +01:00
gstv4l2vidorient.c sys/v4l2/: Fix compilation with newer GIT kernels that deprecated 2008-06-09 08:42:49 +00:00
gstv4l2vidorient.h Add -Wmissing-declarations -Wmissing-prototypes warning flags 2010-03-17 18:23:28 +01:00
gstv4l2xoverlay.c v4l2: re-enable x-overlay support 2010-12-29 11:46:41 -06:00
gstv4l2xoverlay.h v4l2: use the xoverlay APIs 2010-09-21 13:40:33 +02:00
Makefile.am v4l2: re-enable x-overlay support 2010-12-29 11:46:41 -06:00
README Fix level for multi-channel case. 2007-02-22 14:35:28 +00:00
v4l2_calls.c v4l2: printf format string fix 2010-02-15 12:13:43 +00:00
v4l2_calls.h v4l2: Directly use GST_PTR_FORMAT for printing caps with the LOG_CAPS macro 2009-08-04 14:45:31 +02:00
v4l2src_calls.c v4l2sink: Add support for blocking dequeue. 2010-12-29 11:46:40 -06:00
v4l2src_calls.h v4l2: Add v4l2sink element 2009-08-04 09:16:56 +02:00

v4l2 plugins
============

The idea is a bit the same as the idea for the v4l1 plugins. We want
one generic v4l2element, and a few child objects (probably only two:
v4l2src and v4l2sink):

                /-------- v4l2src
v4l2element ---=
                \-------- v4l2sink

Both v4l2src and v4l2sink have a uncompressed and a compressed
recording-/playback-mode. Since this is all part of v4l2, the 'client'
of these elements, i.e. an application using v4l2src/v4l2sink, will
hardly notice this. All capsnego stuff is done inside, and the plugin
knows which formats are compressed and which are not.

Please note that the v4l1 and the v4l2 plugins are *not* compatible
concerning properties. Naming has been kept the same where possible,
but in some cases, properties had to be removed or added to make
full use of v4l2.

V4L2 API: http://linux.bytesex.org/v4l2/.
          http://v4l2spec.bytesex.org/
          /usr/include/linux/videodev2.h or

Kernel patches available from
          http://dl.bytesex.org/patches/.

Articles:
          http://lwn.net/Articles/203924/