ioctl VIDIOC_ENUM_FMT &manvol; VIDIOC_ENUM_FMT Enumerate image formats int ioctl int fd int request struct v4l2_fmtdesc *argp Arguments fd &fd; request VIDIOC_ENUM_FMT argp Description To enumerate image formats applications initialize the type and index field of &v4l2-fmtdesc; and call the VIDIOC_ENUM_FMT ioctl with a pointer to this structure. Drivers fill the rest of the structure or return an &EINVAL;. All formats are enumerable by beginning at index zero and incrementing by one until EINVAL is returned. struct <structname>v4l2_fmtdesc</structname> &cs-str; __u32 index Number of the format in the enumeration, set by the application. This is in no way related to the pixelformat field. &v4l2-buf-type; type Type of the data stream, set by the application. Only these types are valid here: V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver defined) types with code V4L2_BUF_TYPE_PRIVATE and higher. __u32 flags See __u8 description[32] Description of the format, a NUL-terminated ASCII string. This information is intended for the user, for example: "YUV 4:2:2". __u32 pixelformat The image format identifier. This is a four character code as computed by the v4l2_fourcc() macro: #define v4l2_fourcc(a,b,c,d) (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24)) Several image formats are already defined by this specification in . Note these codes are not the same as those used in the Windows world. __u32 reserved[4] Reserved for future extensions. Drivers must set the array to zero.
Image Format Description Flags &cs-def; V4L2_FMT_FLAG_COMPRESSED 0x0001 This is a compressed format. V4L2_FMT_FLAG_EMULATED 0x0002 This format is not native to the device but emulated through software (usually libv4l2), where possible try to use a native format instead for better performance.
&return-value; EINVAL The &v4l2-fmtdesc; type is not supported or the index is out of bounds.