VIDIOC_G_STD, VIDIOC_S_STD — Query or select the video standard of the current input


int ioctl(int fd,
 int request,
 v4l2_std_id *argp);
int ioctl(int fd,
 int request,
 const v4l2_std_id *argp);



File descriptor returned by open().





To query and select the current video standard applications use the VIDIOC_G_STD and VIDIOC_S_STD ioctls which take a pointer to a v4l2_std_id type as argument. VIDIOC_G_STD can return a single flag or a set of flags as in struct v4l2_standard field id. The flags must be unambiguous such that they appear in only one enumerated v4l2_standard structure.

VIDIOC_S_STD accepts one or more flags, being a write-only ioctl it does not return the actual new standard as VIDIOC_G_STD does. When no flags are given or the current input does not support the requested standard the driver returns an EINVAL error code. When the standard set is ambiguous drivers may return EINVAL or choose any of the requested standards. If the current input or output does not support standard video timings (e.g. if VIDIOC_ENUMINPUT does not set the V4L2_IN_CAP_STD flag), then ENODATA error code is returned.

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.


The VIDIOC_S_STD parameter was unsuitable.


Standard video timings are not supported for this input or output.