qv4l2: convert the last direct ioctl calls to a cv4l-helper.
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 28 Jul 2014 14:21:56 +0000 (16:21 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Mon, 28 Jul 2014 14:21:56 +0000 (16:21 +0200)
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
utils/qv4l2/general-tab.cpp
utils/qv4l2/general-tab.h
utils/qv4l2/qv4l2.cpp
utils/v4l2-compliance/cv4l-helpers.h

index 8a2c90e..5e33562 100644 (file)
@@ -121,7 +121,7 @@ GeneralTab::GeneralTab(const QString &device, cv4l_fd *fd, int n, QWidget *paren
                m_maxw[i] = 0;
        }
 
-       cv4l_ioctl(VIDIOC_QUERYCAP, &m_querycap);
+       querycap(m_querycap);
 
        addTitle("General Information");
 
index a31d386..d724098 100644 (file)
@@ -218,6 +218,7 @@ private:
 
        bool g_direct() const { return m_fd->g_direct(); }
        void s_direct(bool direct) { m_fd->s_direct(direct); }
+       void querycap(v4l2_capability &cap) { return m_fd->querycap(cap); }
        int queryctrl(v4l2_queryctrl &qc) { return m_fd->queryctrl(qc); }
        int querymenu(v4l2_querymenu &qm) { return m_fd->querymenu(qm); }
        int g_fmt(v4l2_format &fmt, unsigned type = 0) { return m_fd->g_fmt(fmt); }
index 6daa095..86dcc6a 100644 (file)
@@ -412,7 +412,7 @@ void ApplicationWindow::ctrlEvent()
                ctrls.count = 1;
                ctrls.ctrl_class = 0;
                ctrls.controls = &c;
-               if (!cv4l_ioctl(VIDIOC_G_EXT_CTRLS, &ctrls))
+               if (!g_ext_ctrls(ctrls))
                        setString(ev.id, c.string);
                free(c.string);
        }
@@ -956,7 +956,7 @@ void ApplicationWindow::stopStreaming()
                if (v4l_type_is_capture(g_type())) {
                        memset(&cmd, 0, sizeof(cmd));
                        cmd.cmd = V4L2_ENC_CMD_STOP;
-                       cv4l_ioctl(VIDIOC_ENCODER_CMD, &cmd);
+                       encoder_cmd(cmd);
                }
                break;
 
index 49ab7f7..1b01a6c 100644 (file)
@@ -59,6 +59,11 @@ public:
        bool has_streaming() const { return v4l_has_streaming(this); }
        bool has_ext_pix_format() const { return v4l_has_ext_pix_format(this); }
 
+       void querycap(v4l2_capability &cap)
+       {
+               cap = this->cap;
+       }
+
        int queryctrl(v4l2_queryctrl &qc)
        {
                return cv4l_ioctl(VIDIOC_QUERYCTRL, &qc);
@@ -469,6 +474,26 @@ public:
                return -1;
        }
 
+       int encoder_cmd(v4l2_encoder_cmd &cmd)
+       {
+               return cv4l_ioctl(VIDIOC_ENCODER_CMD, &cmd);
+       }
+
+       int try_encoder_cmd(v4l2_encoder_cmd &cmd)
+       {
+               return cv4l_ioctl(VIDIOC_TRY_ENCODER_CMD, &cmd);
+       }
+
+       int decoder_cmd(v4l2_decoder_cmd &cmd)
+       {
+               return cv4l_ioctl(VIDIOC_DECODER_CMD, &cmd);
+       }
+
+       int try_decoder_cmd(v4l2_decoder_cmd &cmd)
+       {
+               return cv4l_ioctl(VIDIOC_TRY_DECODER_CMD, &cmd);
+       }
+
        v4l2_fract g_pixel_aspect(unsigned &width, unsigned &height, unsigned type = 0)
        {
                v4l2_cropcap ratio;