2.2. Multi-planar format structures

The struct v4l2_plane_pix_format structures define size and layout for each of the planes in a multi-planar format. The struct v4l2_pix_format_mplane structure contains information common to all planes (such as image width and height) and an array of struct v4l2_plane_pix_format structures, describing all planes of that format.

v4l2_plane_pix_format
struct v4l2_plane_pix_format

__u32

sizeimage

Maximum size in bytes required for image data in this plane, set by the driver. When the image consists of variable length compressed data this is the number of bytes required by the codec to support the worst-case compression scenario.

The driver will set the value for uncompressed images.

Clients are allowed to set the sizeimage field for variable length compressed data flagged with V4L2_FMT_FLAG_COMPRESSED at ioctl VIDIOC_ENUM_FMT, but the driver may ignore it and set the value itself, or it may modify the provided value based on alignment requirements or minimum/maximum size requirements. If the client wants to leave this to the driver, then it should set sizeimage to 0.

__u32

bytesperline

Distance in bytes between the leftmost pixels in two adjacent lines. See struct v4l2_pix_format.

__u16

reserved[6]

Reserved for future extensions. Should be zeroed by drivers and applications.

v4l2_pix_format_mplane
struct v4l2_pix_format_mplane

__u32

width

Image width in pixels. See struct v4l2_pix_format.

__u32

height

Image height in pixels. See struct v4l2_pix_format.

__u32

pixelformat

The pixel format. Both single- and multi-planar four character codes can be used.

__u32

field

Field order, from enum v4l2_field. See struct v4l2_pix_format.

__u32

colorspace

Colorspace encoding, from enum v4l2_colorspace. See struct v4l2_pix_format.

struct v4l2_plane_pix_format

plane_fmt[VIDEO_MAX_PLANES]

An array of structures describing format of each plane this pixel format consists of. The number of valid entries in this array has to be put in the num_planes field.

__u8

num_planes

Number of planes (i.e. separate memory buffers) for this format and the number of valid entries in the plane_fmt array.

__u8

flags

Flags set by the application or driver, see Format Flags.

union { (anonymous)

__u8

ycbcr_enc

Y'CbCr encoding, from enum v4l2_ycbcr_encoding. This information supplements the colorspace and must be set by the driver for capture streams and by the application for output streams, see Colorspaces.

__u8

hsv_enc

HSV encoding, from enum v4l2_hsv_encoding. This information supplements the colorspace and must be set by the driver for capture streams and by the application for output streams, see Colorspaces.

}

__u8

quantization

Quantization range, from enum v4l2_quantization. This information supplements the colorspace and must be set by the driver for capture streams and by the application for output streams, see Colorspaces.

__u8

xfer_func

Transfer function, from enum v4l2_xfer_func. This information supplements the colorspace and must be set by the driver for capture streams and by the application for output streams, see Colorspaces.

__u8

reserved[7]

Reserved for future extensions. Should be zeroed by drivers and applications.