gstreamer/sys/v4l2
William Manley d3bd3ecc3e v4l2: Normalise control names in the same way as v4l2-ctl
V4L2 kernel drivers allow configuration of the hardware settings via a
mechanism called controls.  These can be referred to by name such as
"Brightness" and "White Balance Temperature".  The user-space command line
client for setting these controls (v4l2-ctl) normalises these names such
that they only contain lower case alphanumeric characters and the
underscore '_'.  e.g:

    Kernel                     v4l2-ctl
    ----------------------------------------------------
    Brightness                 brightness
    White Balance Temperature  white_balance_temperature
    Focus (absolute)           focus_absolute

GStreamer seems to want to follow this pattern but failed for controls with
more than one consecutive non-alphanum character.  e.g. GStreamer would
produce "focus__absolute_" rather than "focus_absolute".

This commit fixes that issue.  Backwards compatibility is preserved by
normalising all control names before comparison.

https://bugzilla.gnome.org/show_bug.cgi?id=725632
2014-03-08 19:27:54 -05:00
..
gstv4l2.c v4l2videodec: Create one element per device 2014-02-25 14:29:10 -05:00
gstv4l2bufferpool.c v4l2src: also unset INTERLACED flag on buffers if frame is not interlaced 2014-02-21 19:48:42 +00:00
gstv4l2bufferpool.h v4l2bufferpool: add gst_v4l2_buffer_pool_flush 2014-01-10 17:20:21 -05:00
gstv4l2colorbalance.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2colorbalance.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2object.c v4l2object: do not emit "parsed" caps for vp8 2014-02-25 16:11:23 -05:00
gstv4l2object.h v4l2videodec: Create one element per device 2014-02-25 14:29:10 -05:00
gstv4l2radio.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2radio.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2sink.c v4l2: De-duplicate caps probing between src and sink 2013-08-19 13:08:18 -04:00
gstv4l2sink.h v4l2: De-duplicate caps probing between src and sink 2013-08-19 13:08:18 -04:00
gstv4l2src.c v4l2: Move decide allocation into v4l2object 2014-01-10 17:13:23 -05:00
gstv4l2src.h v4l2: De-duplicate caps probing between src and sink 2013-08-19 13:08:18 -04:00
gstv4l2tuner.c v4l2: Use G_DEFINE_ macros for added thread safety 2013-08-19 12:48:35 -04:00
gstv4l2tuner.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2videodec.c v4l2videodec: Create one element per device 2014-02-25 14:29:10 -05:00
gstv4l2videodec.h v4l2videodec: Create one element per device 2014-02-25 14:29:10 -05:00
gstv4l2videooverlay.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2videooverlay.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2vidorient.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2vidorient.h Fix FSF address 2012-11-04 00:07:18 +00:00
Makefile.am v4l2videodec: Implement v4l2videodec 2014-02-25 14:29:10 -05:00
README Fix level for multi-channel case. 2007-02-22 14:35:28 +00:00
tuner.c v4l2: Use G_DEFINE_ macros for added thread safety 2013-08-19 12:48:35 -04:00
tuner.h v4l2: remove unused enumtypes and use generic marshaller 2013-08-04 11:03:49 +01:00
tunerchannel.c v4l2: Use G_DEFINE_ macros for added thread safety 2013-08-19 12:48:35 -04:00
tunerchannel.h Fix FSF address 2012-11-04 00:07:18 +00:00
tunernorm.c v4l2: Use G_DEFINE_ macros for added thread safety 2013-08-19 12:48:35 -04:00
tunernorm.h Fix FSF address 2012-11-04 00:07:18 +00:00
v4l2_calls.c v4l2: Normalise control names in the same way as v4l2-ctl 2014-03-08 19:27:54 -05:00
v4l2_calls.h v4l2object: Implement gst_v4l2_dup() 2014-01-10 17:13:22 -05: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/