gstreamer/sys/v4l2
Michael Olbrich 3417a791ac v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize
Without this the following sequence fails:

- set_caps()
  - object_stop() (does nothing)
  - set_format() -> VIDIOC_S_FMT
- set_config() -> VIDIOC_REQBUFS with count = N
- set_caps()
  - object_stop()
    - pool_finalize()
  - set_format() -> VIDIOC_S_FMT => EBUSY

Usually the pool is started after set_config(), in which case object_stop()
will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but
that is not guaranteed.
Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary
fixes this problem.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701543
2013-06-04 10:45:06 +02:00
..
.gitignore v4l2src: Adding a pre-set-format signal 2012-04-19 09:45:49 +02:00
gstv4l2-marshal.list v4l2src: Adding a pre-set-format signal 2012-04-19 09:45:49 +02:00
gstv4l2.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2bufferpool.c v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize 2013-06-04 10:45:06 +02:00
gstv4l2bufferpool.h v4l2: try to allocate new buffers with VIDIOC_CREATE_BUFS if needed 2013-05-03 11:18:04 +02: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 v4l2: add a property for arbitrary v4l2 controls 2013-05-29 20:18:11 +02:00
gstv4l2object.h v4l2: add a property for arbitrary v4l2 controls 2013-05-29 20:18:11 +02: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: Don't stop streaming when set_caps is called with unchanged caps 2013-05-20 11:13:18 +02:00
gstv4l2sink.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2src.c v4l2: Don't stop streaming when set_caps is called with unchanged caps 2013-05-20 11:13:18 +02:00
gstv4l2src.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2tuner.c Fix FSF address 2012-11-04 00:07:18 +00:00
gstv4l2tuner.h Fix FSF address 2012-11-04 00:07:18 +00: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 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
README Fix level for multi-channel case. 2007-02-22 14:35:28 +00:00
tuner-marshal.list Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tuner.c Fix FSF address 2012-11-04 00:07:18 +00:00
tuner.h Fix FSF address 2012-11-04 00:07:18 +00:00
tunerchannel.c Fix FSF address 2012-11-04 00:07:18 +00:00
tunerchannel.h Fix FSF address 2012-11-04 00:07:18 +00:00
tunernorm.c Fix FSF address 2012-11-04 00:07:18 +00:00
tunernorm.h Fix FSF address 2012-11-04 00:07:18 +00:00
v4l2_calls.c v4l2: Only conditionally use V4L2_CTRL_TYPE_INTEGER_MENU, it's not available in older versions 2013-05-29 20:35:41 +02:00
v4l2_calls.h v4l2: add a property for arbitrary v4l2 controls 2013-05-29 20:18:11 +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/