7.58. ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE¶
7.58.1. 名称¶
VIDIOC_SUBDEV_ENUM_MBUS_CODE - 枚举媒体总线格式
7.58.2. 概要¶
-
VIDIOC_SUBDEV_ENUM_MBUS_CODE¶
int ioctl(int fd, VIDIOC_SUBDEV_ENUM_MBUS_CODE, struct v4l2_subdev_mbus_code_enum * argp)
7.58.3. 参数¶
fd
由
open()
返回的文件描述符。argp
指向结构体
v4l2_subdev_mbus_code_enum
的指针。
7.58.4. 描述¶
此调用由应用程序用于访问所选焊盘的媒体总线格式的枚举。
枚举由驱动程序定义,并使用结构体 v4l2_subdev_mbus_code_enum
的 index
字段进行索引。每个枚举都以 index
为 0 开始,最低的无效索引标志着枚举的结束。
因此,要枚举给定子设备焊盘上可用的媒体总线格式,请将 pad
和 which
字段初始化为所需的值,并将 index
设置为 0。然后,使用指向此结构的指针调用 ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE ioctl。
成功调用将返回,其中 code
字段填充了 mbus 代码值。重复增加 index
,直到收到 EINVAL
。EINVAL
表示 pad
无效,或者此焊盘上没有更多可用的代码。
驱动程序不得在同一焊盘上的不同索引处返回相同的 code
值。
可用的媒体总线格式可能取决于子设备的其它焊盘上当前的“尝试”格式,以及当前活动的链接。有关尝试格式的更多信息,请参阅 ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT。
-
type v4l2_subdev_mbus_code_enum¶
__u32 |
|
媒体控制器 API 报告的焊盘编号。由应用程序填写。 |
__u32 |
|
属于给定焊盘的枚举中 mbus 代码的索引。由应用程序填写。 |
__u32 |
|
媒体总线格式代码,如 媒体总线格式 中定义。由驱动程序填写。 |
__u32 |
|
要枚举的媒体总线格式代码,来自枚举 v4l2_subdev_format_whence。 |
__u32 |
|
请参阅 子设备媒体总线代码枚举标志 |
__u32 |
|
流标识符。 |
__u32 |
|
保留供将来扩展。应用程序和驱动程序必须将数组设置为零。 |
V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE |
0x00000001 |
驱动程序允许应用程序尝试更改默认的色彩空间编码。应用程序可以在调用 VIDIOC_SUBDEV_S_FMT ioctl 时,设置 V4L2_MBUS_FRAMEFMT_SET_CSC 来请求配置子设备的色彩空间。有关如何执行此操作,请参阅 媒体总线格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC |
0x00000002 |
驱动程序允许应用程序尝试更改默认的变换函数。应用程序可以在调用 VIDIOC_SUBDEV_S_FMT ioctl 时,设置 V4L2_MBUS_FRAMEFMT_SET_CSC 来请求配置子设备的变换函数。有关如何执行此操作,请参阅 媒体总线格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC |
0x00000004 |
驱动程序允许应用程序尝试更改默认的 Y’CbCr 编码。应用程序可以在调用 VIDIOC_SUBDEV_S_FMT ioctl 时,设置 V4L2_MBUS_FRAMEFMT_SET_CSC 来请求配置子设备的 Y’CbCr 编码。有关如何执行此操作,请参阅 媒体总线格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC |
0x00000004 |
驱动程序允许应用程序尝试更改默认的 HSV 编码。应用程序可以在调用 VIDIOC_SUBDEV_S_FMT ioctl 时,设置 V4L2_MBUS_FRAMEFMT_SET_CSC 来请求配置子设备的 HSV 编码。有关如何执行此操作,请参阅 媒体总线格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION |
0x00000008 |
驱动程序允许应用程序尝试更改默认的量化。应用程序可以在调用 VIDIOC_SUBDEV_S_FMT ioctl 时,设置 V4L2_MBUS_FRAMEFMT_SET_CSC 来请求配置子设备的量化。有关如何执行此操作,请参阅 媒体总线格式。 |
7.58.5. 返回值¶
成功时返回 0,错误时返回 -1,并且会适当地设置 errno
变量。通用错误代码在 通用错误代码 章节中描述。
- EINVAL
结构体
v4l2_subdev_mbus_code_enum
的pad
引用了不存在的焊盘,which
字段具有不支持的值,或者index
字段超出范围。