zoukankan      html  css  js  c++  java
  • V4L2控制驱动

    1.应用如何知道设备支持那些特性的控制?一种典型的做法,V4L2 API提供了一种机制可以让应用能枚举可用的控制操作。
    为此,他们要发出最终由驱动videoc_queryctrl()方法实现的ioctl(VIDIOC_QUERYCTRL)调用。
    int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc);
    驱动通常会用所关心的控制信息来填充qc结构体,或当控制操作不支持时返回-EINVAL,这个结构体如下:

    2.对于菜单类型:
    int v4l2_querymenu(struct v4l2_ctrl_handler *hdl, struct v4l2_querymenu *qm);

    3.一旦应用知道了可用的控制操作,它就开始查询并改变其值。要查询某一给定控制操作ioctl(VIDIOC_G_CTRL),
    应用应将id字段设为对应的控制的ID,并发出一个调用,这个调用最终实现为:
    int v4l2_g_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *ctrl);

    4.一个试图改变控制操作的请求实现为ioctl():
    int v4l2_s_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *ctrl);
    驱动应验证id,保证其值在允许的区间。如果一切都没有问题的话,就将新值写入硬件。

    参考:
    http://blog.csdn.net/crazyman2010/article/details/9250821
    https://www.cnblogs.com/ronnydm/p/5787182.html

  • 相关阅读:
    如何提高完成端口的性能
    我回来了
    减少资源包中的图片,提高效率
    新的MOVE结构,和在项目中实际的感受
    截图小结
    本周小记
    css选择器
    CSS的三种引入方式
    A标签的四个伪类(L V H A)排序上的讲究
    关于CSS清理浮动的方法
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/8285043.html
Copyright © 2011-2022 走看看