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