gstreamer/sys/v4l2
Wim Taymans eecb9a96a6 v4l2: Improve buffer management
Query the amount of available buffers when doing set_config(). This allows us to
configure the parent bufferpool with the number of buffers to preallocate.
Keep track of the provided allocator and use it when we need to allocate a
buffer in RW mode.
When we are can not allocate the requested max_buffers amount of buffers, make
sure we keep 2 buffers around in the pool and copy them into an output buffer.
This makes sure that we always have a buffer to capture into. We also need to
detect those copied buffers and unref them when they return to the pool.
2012-04-23 18:10:33 +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 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
gstv4l2bufferpool.c v4l2: Improve buffer management 2012-04-23 18:10:33 +02:00
gstv4l2bufferpool.h v4l2: Improve buffer management 2012-04-23 18:10:33 +02:00
gstv4l2colorbalance.c v4l2: port to 0.11 2011-07-08 12:49:12 +02:00
gstv4l2colorbalance.h mixer/colorbalance: Update for API changes 2012-03-02 10:13:08 +01:00
gstv4l2object.c v4l2: fix compilation on older v4l2 2012-04-19 12:38:58 +02:00
gstv4l2object.h update for removed property probe 2011-12-21 11:59:46 +01:00
gstv4l2radio.c Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
gstv4l2radio.h docs: fix docuemntation warnings (and reindent) 2011-04-05 12:06:55 +03:00
gstv4l2sink.c Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
gstv4l2sink.h v4l2: activate the pool in fallback 2011-08-04 12:56:47 +01:00
gstv4l2src.c v4l2: Improve buffer management 2012-04-23 18:10:33 +02:00
gstv4l2src.h v4l2: More work on bufferpools 2011-07-18 18:54:49 +02:00
gstv4l2tuner.c v4l2: move capture code to device object 2011-07-13 18:32:00 +02:00
gstv4l2tuner.h Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
gstv4l2videooverlay.c Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
gstv4l2videooverlay.h Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
gstv4l2vidorient.c interfaces: clean up the use of iface and class/klass 2011-10-21 14:58:41 +02:00
gstv4l2vidorient.h fix for moved interfaces 2011-11-29 19:10:58 +01:00
Makefile.am v4l2: ensure autogenerated files are created 2012-04-13 17:13:22 +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 Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tuner.h Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tunerchannel.c Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tunerchannel.h Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tunernorm.c Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
tunernorm.h Update everything for the removal of the interface library and mixer/tuner interfaces 2012-04-13 13:15:11 +02:00
v4l2_calls.c Merge branch 'master' into 0.11 2012-02-16 14:23:50 +01:00
v4l2_calls.h v4l2: Move configuration of framerate to _set_format 2011-07-13 11:19:28 +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/