cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vidioc-subdev-enum-frame-interval.rst (3574B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2.. c:namespace:: V4L
      3
      4.. _VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL:
      5
      6***************************************
      7ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL
      8***************************************
      9
     10Name
     11====
     12
     13VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL - Enumerate frame intervals
     14
     15Synopsis
     16========
     17
     18.. c:macro:: VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL
     19
     20``int ioctl(int fd, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL, struct v4l2_subdev_frame_interval_enum * argp)``
     21
     22Arguments
     23=========
     24
     25``fd``
     26    File descriptor returned by :c:func:`open()`.
     27
     28``argp``
     29    Pointer to struct :c:type:`v4l2_subdev_frame_interval_enum`.
     30
     31Description
     32===========
     33
     34This ioctl lets applications enumerate available frame intervals on a
     35given sub-device pad. Frame intervals only makes sense for sub-devices
     36that can control the frame period on their own. This includes, for
     37instance, image sensors and TV tuners.
     38
     39For the common use case of image sensors, the frame intervals available
     40on the sub-device output pad depend on the frame format and size on the
     41same pad. Applications must thus specify the desired format and size
     42when enumerating frame intervals.
     43
     44To enumerate frame intervals applications initialize the ``index``,
     45``pad``, ``which``, ``code``, ``width`` and ``height`` fields of struct
     46:c:type:`v4l2_subdev_frame_interval_enum`
     47and call the :ref:`VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL` ioctl with a pointer
     48to this structure. Drivers fill the rest of the structure or return an
     49EINVAL error code if one of the input fields is invalid. All frame
     50intervals are enumerable by beginning at index zero and incrementing by
     51one until ``EINVAL`` is returned.
     52
     53Available frame intervals may depend on the current 'try' formats at
     54other pads of the sub-device, as well as on the current active links.
     55See :ref:`VIDIOC_SUBDEV_G_FMT` for more
     56information about the try formats.
     57
     58Sub-devices that support the frame interval enumeration ioctl should
     59implemented it on a single pad only. Its behaviour when supported on
     60multiple pads of the same sub-device is not defined.
     61
     62.. c:type:: v4l2_subdev_frame_interval_enum
     63
     64.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}|
     65
     66.. flat-table:: struct v4l2_subdev_frame_interval_enum
     67    :header-rows:  0
     68    :stub-columns: 0
     69    :widths:       1 1 2
     70
     71    * - __u32
     72      - ``index``
     73      - Number of the format in the enumeration, set by the application.
     74    * - __u32
     75      - ``pad``
     76      - Pad number as reported by the media controller API.
     77    * - __u32
     78      - ``code``
     79      - The media bus format code, as defined in
     80	:ref:`v4l2-mbus-format`.
     81    * - __u32
     82      - ``width``
     83      - Frame width, in pixels.
     84    * - __u32
     85      - ``height``
     86      - Frame height, in pixels.
     87    * - struct :c:type:`v4l2_fract`
     88      - ``interval``
     89      - Period, in seconds, between consecutive video frames.
     90    * - __u32
     91      - ``which``
     92      - Frame intervals to be enumerated, from enum
     93	:ref:`v4l2_subdev_format_whence <v4l2-subdev-format-whence>`.
     94    * - __u32
     95      - ``reserved``\ [8]
     96      - Reserved for future extensions. Applications and drivers must set
     97	the array to zero.
     98
     99Return Value
    100============
    101
    102On success 0 is returned, on error -1 and the ``errno`` variable is set
    103appropriately. The generic error codes are described at the
    104:ref:`Generic Error Codes <gen-errors>` chapter.
    105
    106EINVAL
    107    The struct
    108    :c:type:`v4l2_subdev_frame_interval_enum`
    109    ``pad`` references a non-existing pad, one of the ``code``,
    110    ``width`` or ``height`` fields are invalid for the given pad or the
    111    ``index`` field is out of bounds.