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 v4l2_fmtdesc
&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.
__u32
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_CAPTURE_MPLANE,
V4L2_BUF_TYPE_VIDEO_OUTPUT,
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver
defined) types with code V4L2_BUF_TYPE_PRIVATE
and higher. See .
__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.