ioctl VIDIOC_SUBDEV_ENUM_FRAME_SIZE
Prev | Appendix A. Function Reference | Next

## Name

VIDIOC_SUBDEV_ENUM_FRAME_SIZE — Enumerate media bus frame sizes

## Synopsis

`int ioctl(` | int fd,
| int request,
| struct v4l2_subdev_frame_size_enum * argp`)`;

## Arguments

`fd`

  File descriptor returned by `open()`.

`request`

  VIDIOC_SUBDEV_ENUM_FRAME_SIZE

`argp`

## Description

### Experimental

This is an experimental interface and may change in the future.

This ioctl allows applications to enumerate all frame sizes supported by a sub-device on the given pad for the given media bus format. Supported formats can be retrieved with the `VIDIOC_SUBDEV_ENUM_MBUS_CODE` ioctl.

To enumerate frame sizes applications initialize the `pad`, `code` and `index` fields of the struct v4l2_subdev_mbus_code_enum and call the `VIDIOC_SUBDEV_ENUM_FRAME_SIZE` ioctl with a pointer to the structure. Drivers fill the minimum and maximum frame sizes or return an EINVAL error code if one of the input parameters is invalid.

Sub-devices that only support discrete frame sizes (such as most sensors) will return one or more frame sizes with identical minimum and maximum values.

Not all possible sizes in given [minimum, maximum] ranges need to be supported. For instance, a scaler that uses a fixed-point scaling ratio might not be able to produce every frame size between the minimum and maximum values. Applications must use the `VIDIOC_SUBDEV_S_FMT` ioctl to try the sub-device for an exact supported frame size.

Available frame sizes may depend on the current 'try' formats at other pads of the sub-device, as well as on the current active links and the current values of V4L2 controls. See `VIDIOC_SUBDEV_G_FMT` for more information about try formats.

Table A.97. struct v4l2_subdev_frame_size_enum

__u32 | `index` | Number of the format in the enumeration, set by the application.
__u32 | `pad` | Pad number as reported by the media controller API.
__u32 | `code` | The media bus format code, as defined in the section called “Media Bus Formats”.
__u32 | `min_width` | Minimum frame width, in pixels.
__u32 | `max_width` | Maximum frame width, in pixels.
__u32 | `min_height` | Minimum frame height, in pixels.
__u32 | `max_height` | Maximum frame height, in pixels.
__u32 | `reserved`[9] | Reserved for future extensions. Applications and drivers must set the array to zero.

## Return Value

On success 0 is returned, on error -1 and the `errno` variable is set appropriately. The generic error codes are described at the Generic Error Codes chapter.

EINVAL

  The struct v4l2_subdev_frame_size_enum `pad` references a non-existing pad, the `code` is invalid for the given pad or the `index` field is out of bounds.

Prev | Up | Next
ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL | Home | ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE