[FFmpeg-cvslog] lavd/v4l2: allow devices not implementing VIDIOC_G_PARM

Niklas Söderlund git at videolan.org
Thu Jun 16 16:32:17 CEST 2016


ffmpeg | branch: master | Niklas Söderlund <niklas.soderlund+renesas at ragnatech.se> | Wed Jun 15 17:21:42 2016 +0200| [6fd4145a1e6b918f0cd1dc268fa703c1cec6fd96] | committer: Michael Niedermayer

lavd/v4l2: allow devices not implementing VIDIOC_G_PARM

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 <niklas.soderlund+renesas at ragnatech.se>
Reviewed-by: Benoit Fouet <benoit.fouet at free.fr>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6fd4145a1e6b918f0cd1dc268fa703c1cec6fd96
---

 libavdevice/v4l2.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 103fb10..c8915e0 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;
 



More information about the ffmpeg-cvslog mailing list