summaryrefslogtreecommitdiff
path: root/libavdevice/v4l2.c
Commit message (Collapse)AuthorAge
...
| * v4l2: Use the codec descriptor facilityLuca Barbato2015-03-02
| | | | | | | | | | The encoder or decoder might be disabled but the format would be supported for at least remuxing.
| * v4l2: Unify one instance of reading/storing errnoMartin Storsjö2014-11-11
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | lavd/v4l2: implement list device callbackLukasz Marek2015-01-11
| | | | | | | | Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
* | avdevice/v4l2: use av_freep() to avoid leaving stale pointers in memoryMichael Niedermayer2014-12-12
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '09f25533a564eab743f258d168697a11122914c4'Michael Niedermayer2014-11-10
|\| | | | | | | | | | | | | | | | | | | | | * commit '09f25533a564eab743f258d168697a11122914c4': v4l2: Preserve errno values Conflicts: libavdevice/v4l2.c See: 60950adc18fe145a235211e75da68ab07123fcaa Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * v4l2: Preserve errno valuesLuca Barbato2014-11-09
| | | | | | | | av_log usually resets it.
* | Merge commit 'a1a259881fa7b23e2ffc0c2a43d4923fe42d0478'Michael Niedermayer2014-11-10
|\| | | | | | | | | | | | | | | | | | | | | * commit 'a1a259881fa7b23e2ffc0c2a43d4923fe42d0478': v4l2: Use av_strerror Conflicts: libavdevice/v4l2.c See: 60950adc18fe145a235211e75da68ab07123fcaa Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * v4l2: Use av_strerrorTristan Matthews2014-11-09
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Revert "v4l2: setting device parameters early"Michael Niedermayer2014-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b1ad9312331759679a9c956233716a67ae681d89. Fixes Ticket #3517 Conflicts: libavdevice/v4l2.c Requested-by: Giorgio Vazzana <mywing81@gmail.com> Merged-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: use pixel format variable names consistentlyGiorgio Vazzana2014-11-06
| | | | | | | | | | | | | | | | | | We now use 'pixelformat' for V4L2_PIX_FMT_* (as they do in v4l2 documentation) and 'pix_fmt' for AVPixelFormat. No functional change in the code. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: don't use avpriv_ prefix for internal functionsJames Almer2014-10-29
| | | | | | | | | | | | | | | | | | | | No need to keep the old symbols around until a major bump since lavd functions with the avpriv_ prefix were never exposed. Signed-off-by: James Almer <jamrial@gmail.com> Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Use v4l2 input format automatically if filename starts with "/dev/video"Andrey Utkin2014-10-29
| | | | | | | | Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
* | lavd/v4l2: introduce enqueue_buffer()Giorgio Vazzana2014-09-06
| | | | | | | | | | | | | | | | Additionally, make sure a buffer gets enqueued again (even in error paths) after it has been succesfully dequeued. Tested-by: Dmitry Volyntsev <xeioexception@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: simplify list_formats()Giorgio Vazzana2014-09-05
| | | | | | | | | | | | We can avoid passing file descriptor fd explicitely. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: simplify list_framesizes()Giorgio Vazzana2014-09-05
| | | | | | | | | | | | We can avoid passing file descriptor fd explicitely. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: remove unneeded variable in device_init()Giorgio Vazzana2014-09-05
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: simplify first_field()Giorgio Vazzana2014-09-05
| | | | | | | | | | | | | | There is no need to pass fd as a second parameter. Additionally remove unneeded curly braces. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: Replace s1 with ctx for consistency.Giorgio Vazzana2014-09-05
| | | | | | | | | | | | No functional change in the code. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | libavdevice/v4l2: fix descriptors leak on error pathsDmitry Volyntsev2014-09-04
| | | | | | | | | | | | | | Signed-off-by: Dmitry Volytnsev <xeioexception@gmail.com> Reviewed-by: Benoit Fouet <benoit.fouet@free.fr> Reviewed-by: Giorgio Vazzana <mywing81@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avdevice/v4l2: try to fix build for openbsdMichael Niedermayer2014-08-18
| | | | | | | | | | Found-by: carl Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: do not fail when VIDIOC_ENUMSTD returns ENODATAAndre Wolokita2014-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of September 14 2012, v4l_enumstd() will return ENODATA when a device's std field is set to 0. That is, the device does not have a standard format. In order to properly handle this case, v4l2_set_parameters should catch the ENODATA code and break instead of failing. Below is the v4l2-core commit describing this change. >>commit a5338190efc7cfa8c99a6856342a77d21c9a05cf >>Author: Hans Verkuil <hans.verkuil@cisco.com> >>Date: Fri Sep 14 06:45:43 2012 -0300 >> >> [media] v4l2-core: tvnorms may be 0 for a given input, handle that case >> >> Currently the core code looks at tvnorms to see whether ENUMSTD >> or G_PARM should be enabled. This is not a good check for drivers >> that support the STD API on one input and the DV Timings API on another. >> In that case tvnorms may be 0. >> Instead check whether s_std is present (for ENUMSTD) or whether g_std or >> current_norm is present for g_parm. >> Also, in the enumstd core function return ENODATA if tvnorms is 0, >> because in that case the current input does not support the STD API >> and ENUMSTD should return ENODATA for that. >> >> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> >> Reviewed-by: Sakari Ailus <sakari.ailus@iki.fi> >> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* | Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'Michael Niedermayer2014-08-15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39': cosmetics: Write NULL pointer equality checks more compactly Conflicts: cmdutils.c ffmpeg_opt.c ffplay.c libavcodec/dvbsub.c libavcodec/dvdsubdec.c libavcodec/dvdsubenc.c libavcodec/dxa.c libavcodec/libxvid_rc.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/rv10.c libavcodec/tiffenc.c libavcodec/utils.c libavcodec/vc1dec.c libavcodec/zmbv.c libavdevice/v4l2.c libavformat/matroskadec.c libavformat/movenc.c libavformat/sdp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * cosmetics: Write NULL pointer equality checks more compactlyGabriel Dume2014-08-15
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * libavdevice: use avpriv_open()Rémi Denis-Courmont2013-08-07
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avdevice/v4l2: Use av_malloc_array()Michael Niedermayer2014-05-22
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd: Use av_gettime_relative()Olivier Langlois2014-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever av_gettime() is used to measure relative period of time, av_gettime_relative() is prefered as it guarantee monotonic time on supported platforms. Since v4l2 is compiled only on Linux where av_gettime_relative() is monotonic, a small wrapper function av_gettime_monotonic() is used (should be inlined the compiler) to put emphasis on that fact. Signed-off-by: Olivier Langlois <olivier@trillion01.com> Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Fix convertion typosMichael Niedermayer2014-04-29
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd: add categories to device implementationsLukasz Marek2014-03-03
| | | | | | | | Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
* | avdevice/v4l2: only use average frame rate if setMichael Niedermayer2014-02-02
| | | | | | | | | | | | It might be unset on some platforms with some drivers and some input Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avdevice/v4l2: only use frame period from v4l2 if validMichael Niedermayer2014-02-02
| | | | | | | | | | | | | | There is evidence that some drivers do not set a valid value See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718805 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | v4l2: setting device parameters earlyFederico Simoncelli2014-01-05
| | | | | | | | | | | | | | | | | | | | | | | | Setting the v4l2 device parameters may influence video properties such as width, height and pixel format. This patch moves v4l2_set_parameters to be executed before fetching the video properties, avoiding errors such as (pal vs ntsc): The v4l2 frame is 829440 bytes, but 691200 bytes are expected Signed-off-by: Federico Simoncelli <fsimonce@redhat.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | timefilter: Handle memory allocation failureDerek Buitenhuis2013-10-27
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | lavd/v4l2: do not fail when VIDIOC_ENUMSTD returns EINVAL without a valid matchmrlika2013-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With some (buggy) drivers, the VIDIOC_G_STD ioctl returns a std_id that cannot be matched with any of the enumerated v4l2_standard structures (for example std_id = 0 or std_id = 0xffffff). Do not fail when we reach the end of the enumeration without a valid match. Fixes ticket #2370 Note: This commit message has been modified by Giorgio Vazzana, the original commit message was: "Fixed regression for mandatory VIDIOC_ENUMSTD support by v4l2" Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: Improve debug messageGiorgio Vazzana2013-09-08
| | | | | | | | | | | | | | In particular, print the standard supported by the selected input. Additionally, use PRIx64 everywhere when printing standards. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Read h264 headers from v4l2 to allow stream-copying.Carl Eugen Hoyos2013-09-01
| | | | | | | | | | Fixes ticket #2882. Analyzed and tested by William C Bonner.
* | Merge commit '7950e519bb094897f957b9a9531cc60ba46cbc91'Michael Niedermayer2013-08-03
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '7950e519bb094897f957b9a9531cc60ba46cbc91': Disable deprecation warnings for cases where a replacement is available Conflicts: libavcodec/avpacket.c libavcodec/pthread.c libavcodec/utils.c libavdevice/v4l2.c libavfilter/avfiltergraph.c libavfilter/buffersrc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Disable deprecation warnings for cases where a replacement is availableDiego Biurrun2013-08-02
| |
* | v4l2: make possible to disable libv4l2 at runtime.Clément Bœsch2013-05-22
| | | | | | | | | | | | Also disable it by default since it looks currently buggy. The usefulness of such library is mostly limited to backward compatibility with very old devices.
* | lavd/v4l2: move pixel format conversion code to a separate place.Clément Bœsch2013-05-20
| | | | | | | | This will be shared with the output device.
* | Merge commit 'a5f8873620ce502d37d0cc3ef93ada2ea8fb8de7'Michael Niedermayer2013-05-04
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'a5f8873620ce502d37d0cc3ef93ada2ea8fb8de7': silly typo fixes Conflicts: doc/protocols.texi libavcodec/aacpsy.c libavformat/utils.c tools/patcheck Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * silly typo fixesDiego Biurrun2013-05-03
| |
* | lavd/v4l2: fully init an ioctl argument.Nicolas George2013-04-01
| | | | | | | | Silence a valgrind warning about uninitialized memory.
* | lavd/v4l2: fix printing of list_formats tableGiorgio Vazzana2013-03-28
| | | | | | | | | | | | In particular we needed a '\n' at the end of the line when the format is emulated. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: replace ioctl() with v4l2_ioctl()Giorgio Vazzana2013-03-28
| | | | | | | | | | | | | | This is consistent with the rest of the file and makes listing of emulated formats possible when ffmpeg is compiled with libv4l2. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: honor previously selected input channelGiorgio Vazzana2013-03-23
| | | | | | | | | | | | | | An input channel could have been previously set with another application, like v4l2-ctl, so if no input channel is specified use the previosly selected one. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: silence libv4l2 loggingGiorgio Vazzana2013-03-16
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: fix bug in init_convert_timestamp()Giorgio Vazzana2013-03-12
| | | | | | | | | | | | The current code returned a period=0, resulting in identical pts for all frames after time-filtering. This is because AV_TIME_BASE_Q={1, AV_TIME_BASE} and not {AV_TIME_BASE, 1}. With this patch the correct period in microseconds is computed.
* | avformat/avdevice: add missing time.h includesMichael Niedermayer2013-03-12
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: simplify codeGiorgio Vazzana2013-03-09
| | | | | | | | | | | | | | struct buff_data contains a pointer to struct video_data, so passing the file descriptor again is redundant. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavd/v4l2: correctly handle error conditions in mmap_read_frame()Giorgio Vazzana2013-03-09
| | | | | | | | | | | | | | | | | | In particular: 1) save errno before it (possibly) gets overwritten by other calls 2) do not forget to enqueue the buffer again in case of error Signed-off-by: Michael Niedermayer <michaelni@gmx.at>