unsignedintnotification,void*arg);structv4l2_ctrl_handler*ctrl_handler;structv4l2_prio_stateprio;structkrefref;void(*release)(structv4l2_device *v4l2_dev);
v4l2_ctrl_new_std_menu(&foo->ctrl_handler,&foo_ctrl_ops,V4L2_CID_POWER_LINE_FREQUENCY,V4L2_CID_POWER_LINE_FREQUENCY_60HZ,0,V4L2_CID_POWER_LINE_FREQUENCY_DISABLED); ...if(foo->ctrl_handler.error){int err=foo->ctrl_handler.error; v4l2_ctrl_handler_free(&foo->ctrl_handler);returnerr;}...
_CONTRAST, 0, 255, 1, 16); v4l2_ctrl_new_std(hdl, &skel_ctrl_ops, V4L2_CID_SATURATION, 0, 255, 1, 127); v4l2_ctrl_new_std(hdl, &skel_ctrl_ops, V4L2_CID_HUE, -128, 127, 1, 0); if (hdl->error) { ret = hdl->error; goto free_hdl; } skel->v4l2_dev.ctrl_handler =...
// 比如改变输出图像的亮度、对比度、饱和度等等 struct v4l2_ctrl_handler *ctrl_handler; // 设备优先级状态 struct v4l2_prio_state prio; /* BKL replacement mutex. Temporary solution only. */ struct mutex ioctl_lock; // struct v4l2_device结构体的引用计数,等于0时才释放 struct kref ref; // 引...
struct v4l2_ctrl_handler:表示一个 v4l2 控制处理器的结构体,用于管理和处理控制相关的操作。它包含了控制列表、控制引用、回调函数等信息,并提供了与控制的注册、访问和事件处理等功能。 struct video_device:表示一个视频设备的结构体,在 v4l2 中用于描述视频设备的信息和操作。它包含了设备的名称、类型、方向、文...
(struct v4l2_subdev*sd,unsigned int notification,void*arg);/* The control handler. May be NULL. */struct v4l2_ctrl_handler*ctrl_handler;/* Device's priority state */struct v4l2_prio_state prio;/* BKL replacement mutex. Temporary solution only. */struct mutex ioctl_lock;/* Keep track of...
(hdl,&vivi_ctrl_menu,NULL);dev->string=v4l2_ctrl_new_custom(hdl,&vivi_ctrl_string,NULL);dev->bitmask=v4l2_ctrl_new_custom(hdl,&vivi_ctrl_bitmask,NULL);if(hdl->error){ret=hdl->error;goto unreg_dev;}v4l2_ctrl_auto_cluster(2,&dev->autogain,0,true);dev->v4l2_dev.ctrl_handler=hdl...
struct v4l2_ctrl_handler *ctrl_handler; //控制处理数据结构 struct v4l2_prio_state prio; //优先级状态 struct kref ref; //计数 void (*release)(struct v4l2_device *v4l2_dev); //释放v4l2设备函数指针 }; 1. 2. 3. 4. 5. 6. 7. ...
struct v4l2_ctrl_handler *ctrl_handler; /* name must be unique */ charname[V4L2_SUBDEV_NAME_SIZE]; /*subdev device node */ struct video_device *devnode; }; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
kernel/nvidia/drivers/media/platform/tegra/camera/vi/channel.c @@ -2290,6 +2290,16 @@int tegra_channel_init_video(struct tegra_channel *chan) chan->video->ctrl_handler = &chan->ctrl_handler; chan->video->lock = &chan->video_lock;+ /* Validate that the name fits */+ if (ARRAY_...