linux V4L2子系统——v4l2的结构体(4)之ioctl, my write
创始人
2024-09-25 05:19:39
0

文章目录

  • linux V4L2子系统——v4l2的结构体(4)之ioctl
  • struct v4l2_ioctl_ops
    • 介绍
    • 定义
    • v4l2 API介绍
      • Query Capability:
      • Application Priority
      • Input/Output
      • Image Format
      • TV视频标准
      • Device Inputs and Outputs
      • Camera Control Reference
      • Cropping, composing and scaling
      • 其他杂项
    • struct v4l2_capability 与 VIDIOC_QUERYCAP
    • struct v4l2_format 与 VIDIOC_G_FMT、VIDIOC_S_FMT、VIDIOC_TRY_FMT
    • struct v4l2_requestbuffers 与 VIDIOC_REQBUFS
    • struct v4l2_buffer与 VIDIOC_QUERYBUF、VIDIOC_QBUF、VIDIOC_DQBUF
    • enum v4l2_buf_type 与 VIDIOC_STREAMON、VIDIOC_STREAMOFF
    • struct v4l2_queryctrl 与 VIDIOC_QUERYCTRL
    • ioctl的实现video_ioctl2

structv4l2_ioctl_ops

介绍

在应用程序获取视频数据的流程中,都是通过 ioctl 命令与驱动程序进行交互,结合实际需求,实现struct v4l2_ioctl_ops相关的成员即可。

定义

//源码:include/media/v4l2-ioctl.h  /**  * struct v4l2_ioctl_ops - describe operations for each V4L2 ioctl  *  * @vidioc_querycap: pointer to the function that implements  *	:ref:`VIDIOC_QUERYCAP ` ioctl  * @vidioc_enum_fmt_vid_cap: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for video capture in single plane mode  * @vidioc_enum_fmt_vid_overlay: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for video overlay  * @vidioc_enum_fmt_vid_out: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for video output in single plane mode  * @vidioc_enum_fmt_vid_cap_mplane: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for video capture in multiplane mode  * @vidioc_enum_fmt_vid_out_mplane: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for video output in multiplane mode  * @vidioc_enum_fmt_sdr_cap: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for Software Defined Radio capture  * @vidioc_enum_fmt_sdr_out: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for Software Defined Radio output  * @vidioc_enum_fmt_meta_cap: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_FMT ` ioctl logic  *	for metadata capture  * @vidioc_g_fmt_vid_cap: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video capture  *	in single plane mode  * @vidioc_g_fmt_vid_overlay: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video overlay  * @vidioc_g_fmt_vid_out: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video out  *	in single plane mode  * @vidioc_g_fmt_vid_out_overlay: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video overlay output  * @vidioc_g_fmt_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for raw VBI capture  * @vidioc_g_fmt_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for raw VBI output  * @vidioc_g_fmt_sliced_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for sliced VBI capture  * @vidioc_g_fmt_sliced_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for sliced VBI output  * @vidioc_g_fmt_vid_cap_mplane: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video capture  *	in multiple plane mode  * @vidioc_g_fmt_vid_out_mplane: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for video out  *	in multiplane plane mode  * @vidioc_g_fmt_sdr_cap: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for Software Defined  *	Radio capture  * @vidioc_g_fmt_sdr_out: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for Software Defined  *	Radio output  * @vidioc_g_fmt_meta_cap: pointer to the function that implements  *	:ref:`VIDIOC_G_FMT ` ioctl logic for metadata capture  * @vidioc_s_fmt_vid_cap: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video capture  *	in single plane mode  * @vidioc_s_fmt_vid_overlay: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video overlay  * @vidioc_s_fmt_vid_out: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video out  *	in single plane mode  * @vidioc_s_fmt_vid_out_overlay: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video overlay output  * @vidioc_s_fmt_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for raw VBI capture  * @vidioc_s_fmt_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for raw VBI output  * @vidioc_s_fmt_sliced_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for sliced VBI capture  * @vidioc_s_fmt_sliced_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for sliced VBI output  * @vidioc_s_fmt_vid_cap_mplane: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video capture  *	in multiple plane mode  * @vidioc_s_fmt_vid_out_mplane: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for video out  *	in multiplane plane mode  * @vidioc_s_fmt_sdr_cap: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for Software Defined  *	Radio capture  * @vidioc_s_fmt_sdr_out: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for Software Defined  *	Radio output  * @vidioc_s_fmt_meta_cap: pointer to the function that implements  *	:ref:`VIDIOC_S_FMT ` ioctl logic for metadata capture  * @vidioc_try_fmt_vid_cap: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video capture  *	in single plane mode  * @vidioc_try_fmt_vid_overlay: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video overlay  * @vidioc_try_fmt_vid_out: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video out  *	in single plane mode  * @vidioc_try_fmt_vid_out_overlay: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video overlay  *	output  * @vidioc_try_fmt_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for raw VBI capture  * @vidioc_try_fmt_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for raw VBI output  * @vidioc_try_fmt_sliced_vbi_cap: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for sliced VBI  *	capture  * @vidioc_try_fmt_sliced_vbi_out: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for sliced VBI output  * @vidioc_try_fmt_vid_cap_mplane: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video capture  *	in multiple plane mode  * @vidioc_try_fmt_vid_out_mplane: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for video out  *	in multiplane plane mode  * @vidioc_try_fmt_sdr_cap: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for Software Defined  *	Radio capture  * @vidioc_try_fmt_sdr_out: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for Software Defined  *	Radio output  * @vidioc_try_fmt_meta_cap: pointer to the function that implements  *	:ref:`VIDIOC_TRY_FMT ` ioctl logic for metadata capture  * @vidioc_reqbufs: pointer to the function that implements  *	:ref:`VIDIOC_REQBUFS ` ioctl  * @vidioc_querybuf: pointer to the function that implements  *	:ref:`VIDIOC_QUERYBUF ` ioctl  * @vidioc_qbuf: pointer to the function that implements  *	:ref:`VIDIOC_QBUF ` ioctl  * @vidioc_expbuf: pointer to the function that implements  *	:ref:`VIDIOC_EXPBUF ` ioctl  * @vidioc_dqbuf: pointer to the function that implements  *	:ref:`VIDIOC_DQBUF ` ioctl  * @vidioc_create_bufs: pointer to the function that implements  *	:ref:`VIDIOC_CREATE_BUFS ` ioctl  * @vidioc_prepare_buf: pointer to the function that implements  *	:ref:`VIDIOC_PREPARE_BUF ` ioctl  * @vidioc_overlay: pointer to the function that implements  *	:ref:`VIDIOC_OVERLAY ` ioctl  * @vidioc_g_fbuf: pointer to the function that implements  *	:ref:`VIDIOC_G_FBUF ` ioctl  * @vidioc_s_fbuf: pointer to the function that implements  *	:ref:`VIDIOC_S_FBUF ` ioctl  * @vidioc_streamon: pointer to the function that implements  *	:ref:`VIDIOC_STREAMON ` ioctl  * @vidioc_streamoff: pointer to the function that implements  *	:ref:`VIDIOC_STREAMOFF ` ioctl  * @vidioc_g_std: pointer to the function that implements  *	:ref:`VIDIOC_G_STD ` ioctl  * @vidioc_s_std: pointer to the function that implements  *	:ref:`VIDIOC_S_STD ` ioctl  * @vidioc_querystd: pointer to the function that implements  *	:ref:`VIDIOC_QUERYSTD ` ioctl  * @vidioc_enum_input: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_INPUT ` ioctl  * @vidioc_g_input: pointer to the function that implements  *	:ref:`VIDIOC_G_INPUT ` ioctl  * @vidioc_s_input: pointer to the function that implements  *	:ref:`VIDIOC_S_INPUT ` ioctl  * @vidioc_enum_output: pointer to the function that implements  *	:ref:`VIDIOC_ENUM_OUTPUT ` ioctl  * @vidioc_g_output: pointer to the function that implements  *	:ref:`VIDIOC_G_OUTPUT ` ioctl  * @vidioc_s_output: pointer to the function that implements  *	:ref:`VIDIOC_S_OUTPUT ` ioctl  * @vidioc_queryctrl: pointer to the function that implements  *	:ref:`VIDIOC_QUERYCTRL ` ioctl  * @vidioc_query_ext_ctrl: pointer to the function that implements  *	:ref:`VIDIOC_QUERY_EXT_CTRL ` ioctl  * @vidioc_g_ctrl: pointer to the function that implements  *	:ref:`VIDIOC_G_CTRL ` ioctl  * @vidioc_s_ctrl: pointer to the function that implements  *	:ref:`VIDIOC_S_CTRL ` ioctl  * @vidioc_g_ext_ctrls: pointer to the function that implements  *	:ref:`VIDIOC_G_EXT_CTRLS 

相关内容

热门资讯

教会透视!陕西扣点点脚本辅助器... 教会透视!陕西扣点点脚本辅助器,卡农血拼辅助(附开挂辅助平台);陕西扣点点脚本辅助器软件透视开挂作为...
详细透视!开心泉州小程序辅助器... 详细透视!开心泉州小程序辅助器安全吗,牛总管辅助神器(附辅助开挂工具);1、很好的开心泉州小程序辅助...
传授透视!天天卡五星辅助器,潮... 传授透视!天天卡五星辅助器,潮汕掌手娱辅助器(附开挂辅助软件);相信小伙伴都知道这个天天卡五星辅助器...
实测透视!枫叶辅助官网地址,牛... 实测透视!枫叶辅助官网地址,牛财神插件(附辅助开挂神器);相信小伙伴都知道这个枫叶辅助官网地址上存在...
正版透视!微信超级三加一辅助,... 正版透视!微信超级三加一辅助,微友助手破解版(附开挂辅助脚本);1、超多福利:超高返利,海量正版游戏...
细节透视!反杀大厅辅助,随意玩... 细节透视!反杀大厅辅助,随意玩辅助器视频(附辅助开挂平台)相信很多朋友都在电脑上玩过随意玩辅助器视频...
详细透视!闲乐互娱源码,点我休... 详细透视!闲乐互娱源码,点我休闲辅助(附辅助开挂神器),点我休闲辅助是用手机号来登录游戏的系统规律,...
正品透视!反杀大厅辅助,悠闲卡... 正品透视!反杀大厅辅助,悠闲卡五星辅助(附开挂辅助脚本);1.悠闲卡五星辅助 ai辅助创建新账号,点...
关于透视!越乡游辅助软件,鄂友... 关于透视!越乡游辅助软件,鄂友会有没有挂(附开挂辅助安装);1、让任何用户在无需AI插件第三方神器的...
必看透视!四川途游破解安装包,... 必看透视!四川途游破解安装包,小闲辅助软件(附辅助开挂安装);四川途游破解安装包软件透视开挂作为一款...