From 6fd4145a1e6b918f0cd1dc268fa703c1cec6fd96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Wed, 15 Jun 2016 17:21:42 +0200 Subject: [PATCH] lavd/v4l2: allow devices not implementing VIDIOC_G_PARM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not all v4l2 devices implement the VIDIOC_G_PARM ioctl. This patch allow ffmpeg to open such device and treat it the same as devices that do implement the ioctl but returns that it do not implement the V4L2_CAP_TIMEPERFRAME capability. Signed-off-by: Niklas Söderlund Reviewed-by: Benoit Fouet Signed-off-by: Michael Niedermayer --- libavdevice/v4l2.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 103fb105f2..c8915e0067 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -715,11 +715,8 @@ static int v4l2_set_parameters(AVFormatContext *ctx) streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; if (v4l2_ioctl(s->fd, VIDIOC_G_PARM, &streamparm) < 0) { ret = AVERROR(errno); - av_log(ctx, AV_LOG_ERROR, "ioctl(VIDIOC_G_PARM): %s\n", av_err2str(ret)); - return ret; - } - - if (framerate_q.num && framerate_q.den) { + av_log(ctx, AV_LOG_WARNING, "ioctl(VIDIOC_G_PARM): %s\n", av_err2str(ret)); + } else if (framerate_q.num && framerate_q.den) { if (streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) { tpf = &streamparm.parm.capture.timeperframe;