1.. Permission is granted to copy, distribute and/or modify this 2.. document under the terms of the GNU Free Documentation License, 3.. Version 1.1 or any later version published by the Free Software 4.. Foundation, with no Invariant Sections, no Front-Cover Texts 5.. and no Back-Cover Texts. A copy of the license is included at 6.. Documentation/userspace-api/media/fdl-appendix.rst. 7.. 8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 9 10.. _VIDIOC_G_STD: 11 12************************************************************************** 13ioctl VIDIOC_G_STD, VIDIOC_S_STD, VIDIOC_SUBDEV_G_STD, VIDIOC_SUBDEV_S_STD 14************************************************************************** 15 16Name 17==== 18 19VIDIOC_G_STD - VIDIOC_S_STD - VIDIOC_SUBDEV_G_STD - VIDIOC_SUBDEV_S_STD - Query or select the video standard of the current input 20 21 22Synopsis 23======== 24 25.. c:function:: int ioctl( int fd, VIDIOC_G_STD, v4l2_std_id *argp ) 26 :name: VIDIOC_G_STD 27 28.. c:function:: int ioctl( int fd, VIDIOC_S_STD, const v4l2_std_id *argp ) 29 :name: VIDIOC_S_STD 30 31.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_STD, v4l2_std_id *argp ) 32 :name: VIDIOC_SUBDEV_G_STD 33 34.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_STD, const v4l2_std_id *argp ) 35 :name: VIDIOC_SUBDEV_S_STD 36 37 38Arguments 39========= 40 41``fd`` 42 File descriptor returned by :ref:`open() <func-open>`. 43 44``argp`` 45 Pointer to :c:type:`v4l2_std_id`. 46 47 48Description 49=========== 50 51To query and select the current video standard applications use the 52:ref:`VIDIOC_G_STD <VIDIOC_G_STD>` and :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` ioctls which take a pointer to a 53:ref:`v4l2_std_id <v4l2-std-id>` type as argument. :ref:`VIDIOC_G_STD <VIDIOC_G_STD>` 54can return a single flag or a set of flags as in struct 55:c:type:`v4l2_standard` field ``id``. The flags must be 56unambiguous such that they appear in only one enumerated 57struct :c:type:`v4l2_standard` structure. 58 59:ref:`VIDIOC_S_STD <VIDIOC_G_STD>` accepts one or more flags, being a write-only ioctl it 60does not return the actual new standard as :ref:`VIDIOC_G_STD <VIDIOC_G_STD>` does. When 61no flags are given or the current input does not support the requested 62standard the driver returns an ``EINVAL`` error code. When the standard set 63is ambiguous drivers may return ``EINVAL`` or choose any of the requested 64standards. If the current input or output does not support standard 65video timings (e.g. if :ref:`VIDIOC_ENUMINPUT` 66does not set the ``V4L2_IN_CAP_STD`` flag), then ``ENODATA`` error code is 67returned. 68 69Calling ``VIDIOC_SUBDEV_S_STD`` on a subdev device node that has been registered 70in read-only mode is not allowed. An error is returned and the errno variable is 71set to ``-EPERM``. 72 73Return Value 74============ 75 76On success 0 is returned, on error -1 and the ``errno`` variable is set 77appropriately. The generic error codes are described at the 78:ref:`Generic Error Codes <gen-errors>` chapter. 79 80EINVAL 81 The :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` parameter was unsuitable. 82 83ENODATA 84 Standard video timings are not supported for this input or output. 85 86EPERM 87 ``VIDIOC_SUBDEV_S_STD`` has been called on a read-only subdevice. 88