summaryrefslogtreecommitdiffstats
path: root/sys/v4l2/v4l2src_calls.c
Commit message (Collapse)AuthorAgeFilesLines
* v4l2: log buffer copies on queue underrun in perf categoryStefan Kost2009-09-111-0/+5
| | | | | v4l2src has a slow path where it does buffer-copies when it runs out of queued buffers. Log this to performance category to help monitoring it.
* v4l2src: add support for mpeg formatsWim Taymans2009-09-071-0/+3
|
* v4l2sink: change where buffers get dequeuedRob Clark2009-08-041-1/+1
| | | | It seems to cause strange occasional high latencies (almost 200ms) when dequeuing buffers from _buffer_alloc(). It is simpler and seems to work much better to dqbuf from the same thread that is queuing the next buffer.
* v4l2: Add v4l2sink elementRob Clark2009-08-041-1267/+53
| | | | | | | | | | | This also does the following changes: (1) pull the bufferpool code out into gstv4l2bufferpool.c, and make a bit more generic so it can be used both for v4l2src and v4l2sink (2) move some of the device probing/configuration/caps stuff into gstv4l2object.c so it does not have to be duplicated between v4l2src and v4l2sink Fixes bug #590280.
* v4l2: Fix v4l2src on OpenSolarisElaine Xiong2009-07-191-6/+14
| | | | | | | | The v4l2 driver for USB webcams on OpenSolaris does not support select() calls. Detect when select() fails, and skip polling the device afterward, which restores the pre 0.10.14 behaviour on OpenSolaris. Signed-off-by: Jan Schmidt <thaytan@noraisin.net>
* v4l2src: move duplicated timestamping and buffer metadata code to _create()Stefan Kost2009-03-251-29/+1
| | | | This will include the latency changes also in the mmap case.
* v4l2src: remove win32 ifdefs introduced by commit ↵Stefan Kost2009-03-251-5/+0
| | | | | | cff3f46760eac74c9bbd7a36aca44fedf327424b V4l2src is under sys and does not exists/run under windows anyway.
* v4l2src: log details if we have them, needed for #575391Stefan Kost2009-03-151-2/+2
|
* v4l2src: fix pads, so that they are subset of template capsStefan Kost2009-03-061-4/+9
| | | | Do not add w=0 | h=0. When we can't get a framerate add fraction range.
* Wait for a frame to become available before capturing itSjoerd Simons2009-03-011-2/+29
| | | | | | | | | | Use GstPoll to wait for the fd of the video device to become readable before trying to capture a frame. This speeds up stopping v4l2src a lot as it no longer has to wait for the next frame, especially when capturing with low framerates or when the video device just never generates a frame (which seems a common issue for uvcvideo devices) Fixes bug #563574.
* v4l2src: Make sort_by_frame_size conditionally compiledLevente Farkas2009-02-231-0/+2
| | | | | | | sort_by_frame_size is declared static and only used inside an ifdef, so use the same ifdef to define the function. Fixes #572185 Signed-off-by: David Schleef <ds@schleef.org>
* sys/v4l2/v4l2src_calls.c: Turns out we don't always get the frame sizes in a ↵Tim-Philipp Müller2008-11-171-10/+20
| | | | | | | | | | | | | | | predefined order from lowest to highest ... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size), (sort_by_frame_size), (gst_v4l2src_probe_caps_for_format): Turns out we don't always get the frame sizes in a predefined order from lowest to highest resolution, so let's just sort the list by frame size once we've queried the possible resolutions rather than assume any particular order. Fixes probed caps for the camera in my HP2133 mini notebook and makes v4l2src default to a decent size.
* Optionally use libv4l to access v4l2 devices. Fixes bug #545033.Bastien Nocera2008-11-041-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: Patch by: Bastien Nocera <hadess at hadess dot net>, Hans de Goede <jwrdegoede at fedoraproject dot org> * configure.ac: * sys/v4l2/Makefile.am: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read): * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), (gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_close), (gst_v4l2_get_norm), (gst_v4l2_set_norm), (gst_v4l2_get_frequency), (gst_v4l2_set_frequency), (gst_v4l2_signal_strength), (gst_v4l2_get_attribute), (gst_v4l2_set_attribute), (gst_v4l2_get_input), (gst_v4l2_set_input): * sys/v4l2/v4l2_calls.h: * sys/v4l2/v4l2src_calls.c: (gst_v4l2_buffer_finalize), (gst_v4l2_buffer_new), (gst_v4l2_buffer_pool_finalize), (gst_v4l2_buffer_pool_new), (gst_v4l2_buffer_pool_activate), (gst_v4l2src_fill_format_list), (gst_v4l2src_probe_caps_for_format_and_size), (gst_v4l2src_probe_caps_for_format), (gst_v4l2src_grab_frame), (gst_v4l2src_set_capture), (gst_v4l2src_capture_init), (gst_v4l2src_capture_start), (gst_v4l2src_capture_stop), (gst_v4l2src_get_nearest_size): Optionally use libv4l to access v4l2 devices. Fixes bug #545033.
* sys/v4l2/v4l2src_calls.c: Guard more uncommon formats with ifdefs so that we ↵Wim Taymans2008-10-311-0/+8
| | | | | | | | | can compile on older versions. Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_format_get_rank): Guard more uncommon formats with ifdefs so that we can compile on older versions.
* sys/v4l2/: Fix memory leaks. Small code cleanups : No need for empty ↵Stefan Kost2008-08-261-14/+14
| | | | | | | | | | | | | _init(). No need to memset instance structures. ... Original commit message from CVS: * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2src.c: * sys/v4l2/gstv4l2src.h: * sys/v4l2/v4l2_calls.c: * sys/v4l2/v4l2src_calls.c: Fix memory leaks. Small code cleanups : No need for empty _init(). No need to memset instance structures. Some more FIXME's.
* sys/v4l2/gstv4l2src.c: Add S910 and PWC formats with a low priority.Wim Taymans2008-08-211-0/+31
| | | | | | | | | | Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_structure), (gst_v4l2_get_caps_info): Add S910 and PWC formats with a low priority. * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_format_get_rank), (gst_v4l2src_probe_caps_for_format): Add more debugging.
* sys/v4l2/gstv4l2src.c: Properly set the maximum latency value, in the same ↵Edward Hervey2008-08-131-13/+4
| | | | | | | | | | | way it is done in v4lsrc. Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_query): Properly set the maximum latency value, in the same way it is done in v4lsrc. * sys/v4l2/v4l2src_calls.c: Simplify fraction equality check, no need to use GValues for this.
* sys/v4l2/gstv4l2src.c: Add warning messages stating exactly why the latency ↵Edward Hervey2008-08-121-1/+3
| | | | | | | | | | | | query failed. Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_query): Add warning messages stating exactly why the latency query failed. * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture): In some cases, the negotiated framerate might be the default one which is already set internally. But we still need to mark it down in fps_n and fps_d so that the latency query can happen properly.
* sys/v4l2/v4l2src_calls.c: When outputting a pad template range for the size, ↵Jan Schmidt2008-08-071-1/+2
| | | | | | | | | include a framerate range too, to avoid ... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): When outputting a pad template range for the size, include a framerate range too, to avoid 'not a real subset of template caps' errors.
* Don't use declarations after statements and variable length arrays.Sebastian Dröge2008-07-081-3/+1
| | | | | | | | | | | | | Original commit message from CVS: * ext/raw1394/gstdv1394src.c: (gst_dv1394src_uri_set_uri): * ext/speex/gstspeexenc.c: (gst_speex_enc_sink_getcaps): * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config): * sys/v4l2/gstv4l2src.c: (gst_v4l2src_fixate): * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): * tests/examples/equalizer/demo.c: (message_handler): * tests/examples/spectrum/demo-audiotest.c: (message_handler): * tests/examples/spectrum/demo-osssrc.c: (message_handler): Don't use declarations after statements and variable length arrays.
* sys/v4l2/v4l2src_calls.c: Try progressive video if interlaced fails. Fixes ↵Daniel Drake2008-07-071-9/+42
| | | | | | | | | | | bug #541956 and the usage of v4l2src on OLPC. Original commit message from CVS: Patch by: Daniel Drake <dsd at gentoo dot org> * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture), (gst_v4l2src_get_nearest_size): Try progressive video if interlaced fails. Fixes bug #541956 and the usage of v4l2src on OLPC.
* sys/v4l2/v4l2src_calls.c: Fix potential caps leak.William M. Brack2008-05-261-10/+34
| | | | | | | | | Original commit message from CVS: Patch by: William M. Brack <wbrack at mmm dot com dot hk> * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): Fix potential caps leak. If we can't get the framerate with an ioctl, try to get it with the current norm. Fixes #520092.
* sys/v4l2/v4l2src_calls.c: If we fail to get the frame intervals, simply ↵William M. Brack2008-05-261-9/+12
| | | | | | | | | | | don't touch the framerates on the template ca... Original commit message from CVS: Patch by: William M. Brack <wbrack at mmm dot com dot hk> * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size): If we fail to get the frame intervals, simply don't touch the framerates on the template caps instead of discarding the format. See #520092.
* sys/v4l2/v4l2src_calls.c: Remove superfluous DEBUG macro.Tim-Philipp Müller2008-03-251-7/+2
| | | | | | Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture): Remove superfluous DEBUG macro.
* sys/v4l2/v4l2src_calls.c: Check whether the device supports setting the ↵William M. Brack2008-03-251-27/+50
| | | | | | | | | | | | framerate before trying to set it and then po... Original commit message from CVS: Based on patch by: William M. Brack <wbrack at mmm com hk> * sys/v4l2/v4l2src_calls.c: (fractions_are_equal), (gst_v4l2src_set_capture): Check whether the device supports setting the framerate before trying to set it and then posting a warning or error if it doesn't work (#516649, #520092). Also compare fractions more correctly.
* sys/v4l2/v4l2src_calls.c: Make sure the probed frame sizes are reversed in ↵William M. Brack2008-03-171-4/+9
| | | | | | | | | | | | | | the resulting caps also when using V4L2_FR... Original commit message from CVS: Patch by: William M. Brack <wbrack at mmm com hk> * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size), (gst_v4l2src_probe_caps_for_format): Make sure the probed frame sizes are reversed in the resulting caps also when using V4L2_FRMSIZE_STEPWISE (so they end up highest resolution first); also remove unused variable. (Partly fixes #520092)
* sys/v4l2/v4l2src_calls.c: Chain up the finalize functions. Fixes bug #515984.Sebastian Dröge2008-02-121-0/+12
| | | | | | | | Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2_buffer_finalize), (gst_v4l2_buffer_class_init), (gst_v4l2_buffer_pool_finalize), (gst_v4l2_buffer_pool_class_init): Chain up the finalize functions. Fixes bug #515984.
* sys/v4l2/v4l2_calls.c: Treat ENOTTY (driver does not implement ioctl) the ↵Jan Schmidt2008-01-311-35/+52
| | | | | | | | | | | | | | | | | same as Original commit message from CVS: * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): Treat ENOTTY (driver does not implement ioctl) the same as EINVAL since it implies there are no available standards. * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format), (gst_v4l2src_get_nearest_size): Replace gst_v4l2src_get_size_limits with 2 calls to new function gst_v4l2src_get_nearest_size, and get it to use VIDIOC_S_FMT to probe if the driver does not support VIDIOC_TRY_FMT for whatever reason, and if we aren't yet actively capturing. * sys/v4l2/v4l2src_calls.h: Remove replaced function declaration.
* configure.ac: Detect video4linux headers on Solaris too.Brian Cameron2008-01-211-2/+7
| | | | | | | | | | | | | | Original commit message from CVS: * configure.ac: Detect video4linux headers on Solaris too. * sys/v4l2/gstv4l2colorbalance.h: * sys/v4l2/gstv4l2object.h: * sys/v4l2/v4l2_calls.c: * sys/v4l2/v4l2src_calls.c: (gst_v4l2_buffer_finalize), (gst_v4l2_buffer_new): Make v4l2 build on Solaris. Patch by: Brian Cameron <brian.cameron at sun dot com> Fixes: #510505
* sys/v4l2/: Init some structs to zero before we pass them to ioctl, which ↵Tim-Philipp Müller2007-12-111-3/+5
| | | | | | | | | | avoids valgrind warnings. Also fix a small ... Original commit message from CVS: * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list): Init some structs to zero before we pass them to ioctl, which avoids valgrind warnings. Also fix a small memory leak.
* Always copy buffers by default (handle safer with bugged drivers) and added ↵Edgard Lima2007-11-151-20/+11
| | | | | | | a property to make it possible to use mma... Original commit message from CVS: Always copy buffers by default (handle safer with bugged drivers) and added a property to make it possible to use mmap effectively (no copy if possible) when application wants to. Fixes: #480557.
* sys/v4l2/v4l2src_calls.c: but the corresponding ioctl() call fails even ↵Tim-Philipp Müller2007-11-131-0/+12
| | | | | | | | | | | | though the driver claims to support this form... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): If VIDIOC_ENUM_FRAMESIZES is defined (= recent kernel), but the corresponding ioctl() call fails even though the driver claims to support this format, just fall back to the pre-2.6.19 kernel routine that creates caps with suitable height and width ranges (see #448278).
* sys/v4l2/v4l2src_calls.c: Fix 'unused variable' compiler warning when ↵Tim-Philipp Müller2007-10-261-1/+1
| | | | | | | | | compiling against older kernel headers. Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: Fix 'unused variable' compiler warning when compiling against older kernel headers.
* sys/v4l2/v4l2src_calls.c: Fixes "v4l2src ! queue ! xvimagesink". The queue ↵Edgard Lima2007-10-221-8/+20
| | | | | | | | | | ask for buffer too early. It is temporary ... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_grab_frame): Fixes "v4l2src ! queue ! xvimagesink". The queue ask for buffer too early. It is temporary until we find something better.
* sys/v4l2/v4l2src_calls.c: Add some more debug info. Generate an error when ↵Wim Taymans2007-10-181-5/+33
| | | | | | | | | | we run out of buffers for some reason. See... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2_buffer_finalize), (gst_v4l2src_grab_frame): Add some more debug info. Generate an error when we run out of buffers for some reason. See #480557.
* sys/v4l2/: When probing the formats and sizes a camera supports, make sure ↵Tim-Philipp Müller2007-10-131-3/+109
| | | | | | | | | | | | | | | | | | | | | the best ones (highest resolution, prefere... Original commit message from CVS: * sys/v4l2/gstv4l2src.c: * sys/v4l2/v4l2src_calls.c: When probing the formats and sizes a camera supports, make sure the best ones (highest resolution, prefered format) end up at the beginning of the probed caps and the less desirable ones at the end. This is important because the order within the caps matters for things like fixation and negotiation, ie. what format is chosen in the end. With recent kernels, the current probing code will end up querying the supported sizes from lowest resolution to highest resolution, adding them to the probed caps in that order, resulting to v4l2src fixating to the lowest possible resolution if downstream does not express a size preference. Also make up a somewhat random ranking of prefered output formats for the same reason. Fixes #485828.
* sys/v4l2/v4l2src_calls.c: Fix framerate detection code some more.Wim Taymans2007-09-111-40/+62
| | | | | | | | | | | | Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size): Fix framerate detection code some more. Handle the case where there is a weird step in the stepwise framerates. Don't overwrite the min interval with the framerate, use a temp variable instead. Use max in the Continuous framerate intervals instead of step, which is 1 according to the docs. Fixes #475424.
* sys/v4l2/v4l2src_calls.c: Don't overwrite our GValue with 0 but instead use ↵Wim Taymans2007-09-071-3/+0
| | | | | | | | | | the previously computed value. Fixes #471... Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size): Don't overwrite our GValue with 0 but instead use the previously computed value. Fixes #471823 some more.
* sys/v4l2/: Implement LATENCY queries in the crudest way possible so I don't ↵Tim-Philipp Müller2007-09-051-0/+3
| | | | | | | | | | | have to use sync=false any longer when te... Original commit message from CVS: * sys/v4l2/gstv4l2src.c: * sys/v4l2/gstv4l2src.h: * sys/v4l2/v4l2src_calls.c: Implement LATENCY queries in the crudest way possible so I don't have to use sync=false any longer when testing with videosinks.
* sys/v4l2/v4l2src_calls.c: Add some more debugging in the framerate function.Wim Taymans2007-09-051-8/+31
| | | | | | | | | | Original commit message from CVS: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size): Add some more debugging in the framerate function. Iterate stepwise framerate up to and _including_ the max and if nothing was added to the list, add a dummy 0/1 to 100/1 framerate so that we don't end up with an empty list.
* sys/v4l2/gstv4l2src.c: Restructure the setcaps function so that we can also ↵Wim Taymans2007-09-041-16/+54
| | | | | | | | | | | | | | | | | | | | | | | compute the expected GStreamer output siz... Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2_get_caps_info), (gst_v4l2src_set_caps), (gst_v4l2src_get_mmap): Restructure the setcaps function so that we can also compute the expected GStreamer output size of the video frames. Set frame_byte_size correctly so that read-based devices have a chance of working correctly. When grabbing a frame, discard frames that are not of the expected size. Some cameras don't output the right framesize for the first buffer. Try only a couple of times to get a valid frame, else error out. * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), (gst_v4l2_fill_lists), (gst_v4l2_get_input): Add some more debug info when scanning the device. * sys/v4l2/v4l2src_calls.c: (gst_v4l2_buffer_new), (gst_v4l2_buffer_pool_new), (gst_v4l2_buffer_pool_activate), (gst_v4l2src_fill_format_list), (gst_v4l2src_grab_frame), (gst_v4l2src_set_capture), (gst_v4l2src_capture_init): Add some more debug info when dequeing a frame.
* sys/v4l2/v4l2src_calls.c: Handle optional v4l2 ioctls gracefully.Mark Nauwelaerts2007-08-221-25/+18
| | | | | | | Original commit message from CVS: patch by: Mark Nauwelaerts <manauw@skynet.be> * sys/v4l2/v4l2src_calls.c: Handle optional v4l2 ioctls gracefully.
* sys/v4l2/gstv4l2src.c: Use define here.Alexander Eichner2007-07-181-14/+20
| | | | | | | | | | | | | | Original commit message from CVS: Patch by: Alexander Eichner <alexeichi@yahoo.de> * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init): Use define here. * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_set_frequency_and_notify): Don't touch the property - its still disabled. * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format), (gst_v4l2src_grab_frame), (gst_v4l2src_get_size_limits): * sys/v4l2/v4l2src_calls.h: Improve fallback format negotionation. Fixes #451388
* sys/v4l2/gstv4l2src.c: Initialize num_buffers with minimum value.Stefan Kost2007-07-171-10/+20
| | | | | | | | | Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init): Initialize num_buffers with minimum value. * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), (gst_v4l2src_probe_caps_for_format), (gst_v4l2src_grab_frame): Handle frame-size query failure gracefully.
* Return a copy of the pool buffer if all mmap buffers have been dequeued.Andy Wingo2007-06-121-6/+18
| | | | | | Original commit message from CVS: (gst_v4l2src_grab_frame): Return a copy of the pool buffer if all mmap buffers have been dequeued.
* sys/v4l2/v4l2src_calls.c (gst_v4l2_buffer_finalize) ↵Andy Wingo2007-06-121-242/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (gst_v4l2_buffer_class_init, gst_v4l2_buffer_get_type) Original commit message from CVS: 2007-06-12 Andy Wingo <wingo@pobox.com> * sys/v4l2/v4l2src_calls.c (gst_v4l2_buffer_finalize) (gst_v4l2_buffer_class_init, gst_v4l2_buffer_get_type) (gst_v4l2_buffer_new): Behave more like ximagesink's buffers, with finalization and resuscitation. No longer public. (gst_v4l2_buffer_pool_finalize, gst_v4l2_buffer_pool_init) (gst_v4l2_buffer_pool_class_init, gst_v4l2_buffer_pool_get_type) (gst_v4l2_buffer_pool_new, gst_v4l2_buffer_pool_activate) (gst_v4l2_buffer_pool_destroy): Make the pool follow common miniobject semantics, and be threadsafe. (gst_v4l2src_queue_frame): Remove this function, as we just call the ioctls directly in the two places where we queue buffers. (gst_v4l2src_grab_frame): Return a flowreturn and fill the buffer directly. (gst_v4l2src_capture_init): Use the new buffer_pool_new function to allocate the pool, which also preallocates the GstBuffers. (gst_v4l2src_capture_start): Call buffer_pool_activate instead of queueing the frames directly. * sys/v4l2/gstv4l2src.h (struct _GstV4l2BufferPool): Make this a real MiniObject instead of rolling our own refcounting and finalizing. Give it a lock. (struct _GstV4l2Buffer): Remove one intermediary object, having the buffers hold the struct v4l2_buffer directly. * sys/v4l2/gstv4l2src.c (gst_v4l2src_set_caps): Pass the caps to capture_init so that it can set them on the buffers that it will create. (gst_v4l2src_get_read): For better or for worse, include the timestamping and offsetting code here; really we should be using bufferalloc though. (gst_v4l2src_get_mmap): Just make grab_frame return one of our preallocated, mmap'd buffers.
* sys/v4l2/v4l2src_calls.c (gst_v4l2src_probe_caps_for_format)Andy Wingo2007-06-061-0/+20
| | | | | | | | | | Original commit message from CVS: 2007-06-06 Andy Wingo <wingo@pobox.com> * sys/v4l2/v4l2src_calls.c (gst_v4l2src_probe_caps_for_format) (gst_v4l2src_probe_caps_for_format_and_size): Only probe for format and size if the ioctls are defined; should fix compilation on Linux < 2.16.19.
* sys/v4l2/gstv4l2src.c (gst_v4l2src_start, gst_v4l2src_stop): Add some ↵Andy Wingo2007-06-051-47/+19
| | | | | | | | | | | | | | | | | | | | useless comments. Original commit message from CVS: 2007-06-05 Andy Wingo <wingo@pobox.com> * sys/v4l2/gstv4l2src.c (gst_v4l2src_start, gst_v4l2src_stop): Add some useless comments. * sys/v4l2/v4l2src_calls.c (gst_v4l2src_capture_init): Don't queue frames before calling STREAMON, that might leave them in a state where they can't be dequeued if we go back to NULL without calling STREAMON, according to the docs. (gst_v4l2src_capture_start): Enqueue buffers here instead, right before we call STREAMON. (gst_v4l2src_capture_deinit): Remove crack to work around dequeue failures. (For me this code hung.) The pool refcounting is still crack; added a note to that effect.
* sys/v4l2/v4l2src_calls.*: Store the format list in the order that the driver ↵Andy Wingo2007-05-301-307/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gives it to us. Original commit message from CVS: 2007-05-30 Andy Wingo <wingo@pobox.com> * sys/v4l2/v4l2src_calls.h: * sys/v4l2/v4l2src_calls.c (gst_v4l2src_fill_format_list): Store the format list in the order that the driver gives it to us. (gst_v4l2src_probe_caps_for_format_and_size) (gst_v4l2src_probe_caps_for_format): New functions, fill GstCaps based on the capabilities of the device. (gst_v4l2src_grab_frame): Update for object variable renaming. (gst_v4l2src_set_capture): Update to be strict in its parameters, as in the set_caps below. (gst_v4l2src_capture_init): Update for object variable renaming, and reflow. (gst_v4l2src_capture_start, gst_v4l2src_capture_stop) (gst_v4l2src_capture_deinit): Update for object variable renaming. (gst_v4l2src_update_fps, gst_v4l2src_set_fps) (gst_v4l2src_get_fps): Remove; these functions don't have much meaning outside of an atomic set_caps method. (gst_v4l2src_buffer_new): Don't set buffer duration, it is not known. * sys/v4l2/gstv4l2tuner.c (gst_v4l2_tuner_set_channel): Remove call to update_fps; not sure about this change. (gst_v4l2_tuner_set_norm): Work around the fact that for the moment we don't have an update_fps_func. * sys/v4l2/gstv4l2src.h (struct _GstV4l2Src): Don't put v4l2 structures in the object, just store what we need. Do store the probed caps of the device. Don't store the current frame rate. * sys/v4l2/gstv4l2src.c (gst_v4l2src_init): Remove the update_fps_function, for now. Update for new object variable naming. (gst_v4l2src_set_property, gst_v4l2src_get_property): Update for new object variable naming. (gst_v4l2src_v4l2fourcc_to_structure): Rename from ..._to_caps. (gst_v4l2_structure_to_v4l2fourcc): Rename from ...caps_to_.... (gst_v4l2src_get_caps): Rework to probe the device for supported frame sizes and frame rates. (gst_v4l2src_set_caps): Rework to be strict in the given parameters: if someone asks us to have a certain size and rate, that is what we configure. (gst_v4l2src_get_read): Update for object variable naming. Don't leak buffers on short reads. (gst_v4l2src_get_mmap): Update for object variable naming, and add comments. (gst_v4l2src_create): Update for object variable naming.
* Printf format fixes; also add some missing quotes in translated strings. ↵Tim-Philipp Müller2007-03-101-2/+2
| | | | | | | | | | | | Fixes #416728 and #416727. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_index): * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_grab_frame): Printf format fixes; also add some missing quotes in translated strings. Fixes #416728 and #416727.