162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci.. c:namespace:: V4L 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci.. _VIDIOC_G_FBUF: 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci********************************** 762306a36Sopenharmony_ciioctl VIDIOC_G_FBUF, VIDIOC_S_FBUF 862306a36Sopenharmony_ci********************************** 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciName 1162306a36Sopenharmony_ci==== 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciVIDIOC_G_FBUF - VIDIOC_S_FBUF - Get or set frame buffer overlay parameters 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSynopsis 1662306a36Sopenharmony_ci======== 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. c:macro:: VIDIOC_G_FBUF 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci``int ioctl(int fd, VIDIOC_G_FBUF, struct v4l2_framebuffer *argp)`` 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci.. c:macro:: VIDIOC_S_FBUF 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci``int ioctl(int fd, VIDIOC_S_FBUF, const struct v4l2_framebuffer *argp)`` 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciArguments 2762306a36Sopenharmony_ci========= 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci``fd`` 3062306a36Sopenharmony_ci File descriptor returned by :c:func:`open()`. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci``argp`` 3362306a36Sopenharmony_ci Pointer to struct :c:type:`v4l2_framebuffer`. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciDescription 3662306a36Sopenharmony_ci=========== 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciApplications can use the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` and :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` ioctl 3962306a36Sopenharmony_cito get and set the framebuffer parameters for a 4062306a36Sopenharmony_ci:ref:`Video Overlay <overlay>` or :ref:`Video Output Overlay <osd>` 4162306a36Sopenharmony_ci(OSD). The type of overlay is implied by the device type (capture or 4262306a36Sopenharmony_cioutput device) and can be determined with the 4362306a36Sopenharmony_ci:ref:`VIDIOC_QUERYCAP` ioctl. One ``/dev/videoN`` 4462306a36Sopenharmony_cidevice must not support both kinds of overlay. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciThe V4L2 API distinguishes destructive and non-destructive overlays. A 4762306a36Sopenharmony_cidestructive overlay copies captured video images into the video memory 4862306a36Sopenharmony_ciof a graphics card. A non-destructive overlay blends video images into a 4962306a36Sopenharmony_ciVGA signal or graphics into a video signal. *Video Output Overlays* are 5062306a36Sopenharmony_cialways non-destructive. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciDestructive overlay support has been removed: with modern GPUs and CPUs 5362306a36Sopenharmony_cithis is no longer needed, and it was always a very dangerous feature. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciTo get the current parameters applications call the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` 5662306a36Sopenharmony_ciioctl with a pointer to a struct :c:type:`v4l2_framebuffer` 5762306a36Sopenharmony_cistructure. The driver fills all fields of the structure or returns an 5862306a36Sopenharmony_ciEINVAL error code when overlays are not supported. 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciTo set the parameters for a *Video Output Overlay*, applications must 6162306a36Sopenharmony_ciinitialize the ``flags`` field of a struct 6262306a36Sopenharmony_ci:c:type:`v4l2_framebuffer`. Since the framebuffer is 6362306a36Sopenharmony_ciimplemented on the TV card all other parameters are determined by the 6462306a36Sopenharmony_cidriver. When an application calls :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` with a pointer to 6562306a36Sopenharmony_cithis structure, the driver prepares for the overlay and returns the 6662306a36Sopenharmony_ciframebuffer parameters as :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` does, or it returns an error 6762306a36Sopenharmony_cicode. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciTo set the parameters for a *Video Capture Overlay* 7062306a36Sopenharmony_ciapplications must initialize the ``flags`` field, the ``fmt`` 7162306a36Sopenharmony_cisubstructure, and call :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`. Again the driver prepares for 7262306a36Sopenharmony_cithe overlay and returns the framebuffer parameters as :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` 7362306a36Sopenharmony_cidoes, or it returns an error code. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci.. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{6.6cm}| 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci.. c:type:: v4l2_framebuffer 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci.. cssclass:: longtable 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci.. flat-table:: struct v4l2_framebuffer 8262306a36Sopenharmony_ci :header-rows: 0 8362306a36Sopenharmony_ci :stub-columns: 0 8462306a36Sopenharmony_ci :widths: 1 1 1 2 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci * - __u32 8762306a36Sopenharmony_ci - ``capability`` 8862306a36Sopenharmony_ci - 8962306a36Sopenharmony_ci - Overlay capability flags set by the driver, see 9062306a36Sopenharmony_ci :ref:`framebuffer-cap`. 9162306a36Sopenharmony_ci * - __u32 9262306a36Sopenharmony_ci - ``flags`` 9362306a36Sopenharmony_ci - 9462306a36Sopenharmony_ci - Overlay control flags set by application and driver, see 9562306a36Sopenharmony_ci :ref:`framebuffer-flags` 9662306a36Sopenharmony_ci * - void * 9762306a36Sopenharmony_ci - ``base`` 9862306a36Sopenharmony_ci - 9962306a36Sopenharmony_ci - Physical base address of the framebuffer, that is the address of 10062306a36Sopenharmony_ci the pixel in the top left corner of the framebuffer. 10162306a36Sopenharmony_ci For :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` this field is no longer supported 10262306a36Sopenharmony_ci and the kernel will always set this to NULL. 10362306a36Sopenharmony_ci For *Video Output Overlays* 10462306a36Sopenharmony_ci the driver will return a valid base address, so applications can 10562306a36Sopenharmony_ci find the corresponding Linux framebuffer device (see 10662306a36Sopenharmony_ci :ref:`osd`). For *Video Capture Overlays* this field will always be 10762306a36Sopenharmony_ci NULL. 10862306a36Sopenharmony_ci * - struct 10962306a36Sopenharmony_ci - ``fmt`` 11062306a36Sopenharmony_ci - 11162306a36Sopenharmony_ci - Layout of the frame buffer. 11262306a36Sopenharmony_ci * - 11362306a36Sopenharmony_ci - __u32 11462306a36Sopenharmony_ci - ``width`` 11562306a36Sopenharmony_ci - Width of the frame buffer in pixels. 11662306a36Sopenharmony_ci * - 11762306a36Sopenharmony_ci - __u32 11862306a36Sopenharmony_ci - ``height`` 11962306a36Sopenharmony_ci - Height of the frame buffer in pixels. 12062306a36Sopenharmony_ci * - 12162306a36Sopenharmony_ci - __u32 12262306a36Sopenharmony_ci - ``pixelformat`` 12362306a36Sopenharmony_ci - The pixel format of the framebuffer. 12462306a36Sopenharmony_ci * - 12562306a36Sopenharmony_ci - 12662306a36Sopenharmony_ci - 12762306a36Sopenharmony_ci - For *non-destructive Video Overlays* this field only defines a 12862306a36Sopenharmony_ci format for the struct :c:type:`v4l2_window` 12962306a36Sopenharmony_ci ``chromakey`` field. 13062306a36Sopenharmony_ci * - 13162306a36Sopenharmony_ci - 13262306a36Sopenharmony_ci - 13362306a36Sopenharmony_ci - For *Video Output Overlays* the driver must return a valid 13462306a36Sopenharmony_ci format. 13562306a36Sopenharmony_ci * - 13662306a36Sopenharmony_ci - 13762306a36Sopenharmony_ci - 13862306a36Sopenharmony_ci - Usually this is an RGB format (for example 13962306a36Sopenharmony_ci :ref:`V4L2_PIX_FMT_RGB565 <V4L2-PIX-FMT-RGB565>`) but YUV 14062306a36Sopenharmony_ci formats (only packed YUV formats when chroma keying is used, not 14162306a36Sopenharmony_ci including ``V4L2_PIX_FMT_YUYV`` and ``V4L2_PIX_FMT_UYVY``) and the 14262306a36Sopenharmony_ci ``V4L2_PIX_FMT_PAL8`` format are also permitted. The behavior of 14362306a36Sopenharmony_ci the driver when an application requests a compressed format is 14462306a36Sopenharmony_ci undefined. See :ref:`pixfmt` for information on pixel formats. 14562306a36Sopenharmony_ci * - 14662306a36Sopenharmony_ci - enum :c:type:`v4l2_field` 14762306a36Sopenharmony_ci - ``field`` 14862306a36Sopenharmony_ci - Drivers and applications shall ignore this field. If applicable, 14962306a36Sopenharmony_ci the field order is selected with the 15062306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, using the ``field`` 15162306a36Sopenharmony_ci field of struct :c:type:`v4l2_window`. 15262306a36Sopenharmony_ci * - 15362306a36Sopenharmony_ci - __u32 15462306a36Sopenharmony_ci - ``bytesperline`` 15562306a36Sopenharmony_ci - Distance in bytes between the leftmost pixels in two adjacent 15662306a36Sopenharmony_ci lines. 15762306a36Sopenharmony_ci * - :cspan:`3` 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci This field is irrelevant to *non-destructive Video Overlays*. 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci For *Video Output Overlays* the driver must return a valid value. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci Video hardware may access padding bytes, therefore they must 16462306a36Sopenharmony_ci reside in accessible memory. Consider for example the case where 16562306a36Sopenharmony_ci padding bytes after the last line of an image cross a system page 16662306a36Sopenharmony_ci boundary. Capture devices may write padding bytes, the value is 16762306a36Sopenharmony_ci undefined. Output devices ignore the contents of padding bytes. 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci When the image format is planar the ``bytesperline`` value applies 17062306a36Sopenharmony_ci to the first plane and is divided by the same factor as the 17162306a36Sopenharmony_ci ``width`` field for the other planes. For example the Cb and Cr 17262306a36Sopenharmony_ci planes of a YUV 4:2:0 image have half as many padding bytes 17362306a36Sopenharmony_ci following each line as the Y plane. To avoid ambiguities drivers 17462306a36Sopenharmony_ci must return a ``bytesperline`` value rounded up to a multiple of 17562306a36Sopenharmony_ci the scale factor. 17662306a36Sopenharmony_ci * - 17762306a36Sopenharmony_ci - __u32 17862306a36Sopenharmony_ci - ``sizeimage`` 17962306a36Sopenharmony_ci - This field is irrelevant to *non-destructive Video Overlays*. 18062306a36Sopenharmony_ci For *Video Output Overlays* the driver must return a valid 18162306a36Sopenharmony_ci format. 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci Together with ``base`` it defines the framebuffer memory 18462306a36Sopenharmony_ci accessible by the driver. 18562306a36Sopenharmony_ci * - 18662306a36Sopenharmony_ci - enum :c:type:`v4l2_colorspace` 18762306a36Sopenharmony_ci - ``colorspace`` 18862306a36Sopenharmony_ci - This information supplements the ``pixelformat`` and must be set 18962306a36Sopenharmony_ci by the driver, see :ref:`colorspaces`. 19062306a36Sopenharmony_ci * - 19162306a36Sopenharmony_ci - __u32 19262306a36Sopenharmony_ci - ``priv`` 19362306a36Sopenharmony_ci - Reserved. Drivers and applications must set this field to zero. 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{1.6cm}|p{8.3cm}| 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci.. _framebuffer-cap: 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci.. flat-table:: Frame Buffer Capability Flags 20062306a36Sopenharmony_ci :header-rows: 0 20162306a36Sopenharmony_ci :stub-columns: 0 20262306a36Sopenharmony_ci :widths: 3 1 4 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` 20562306a36Sopenharmony_ci - 0x0001 20662306a36Sopenharmony_ci - The device is capable of non-destructive overlays. When the driver 20762306a36Sopenharmony_ci clears this flag, only destructive overlays are supported. There 20862306a36Sopenharmony_ci are no drivers yet which support both destructive and 20962306a36Sopenharmony_ci non-destructive overlays. Video Output Overlays are in practice 21062306a36Sopenharmony_ci always non-destructive. 21162306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_CHROMAKEY`` 21262306a36Sopenharmony_ci - 0x0002 21362306a36Sopenharmony_ci - The device supports clipping by chroma-keying the images. That is, 21462306a36Sopenharmony_ci image pixels replace pixels in the VGA or video signal only where 21562306a36Sopenharmony_ci the latter assume a certain color. Chroma-keying makes no sense 21662306a36Sopenharmony_ci for destructive overlays. 21762306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_LIST_CLIPPING`` 21862306a36Sopenharmony_ci - 0x0004 21962306a36Sopenharmony_ci - The device supports clipping using a list of clip rectangles. 22062306a36Sopenharmony_ci Note that this is no longer supported. 22162306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` 22262306a36Sopenharmony_ci - 0x0008 22362306a36Sopenharmony_ci - The device supports clipping using a bit mask. 22462306a36Sopenharmony_ci Note that this is no longer supported. 22562306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_LOCAL_ALPHA`` 22662306a36Sopenharmony_ci - 0x0010 22762306a36Sopenharmony_ci - The device supports clipping/blending using the alpha channel of 22862306a36Sopenharmony_ci the framebuffer or VGA signal. Alpha blending makes no sense for 22962306a36Sopenharmony_ci destructive overlays. 23062306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_GLOBAL_ALPHA`` 23162306a36Sopenharmony_ci - 0x0020 23262306a36Sopenharmony_ci - The device supports alpha blending using a global alpha value. 23362306a36Sopenharmony_ci Alpha blending makes no sense for destructive overlays. 23462306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_LOCAL_INV_ALPHA`` 23562306a36Sopenharmony_ci - 0x0040 23662306a36Sopenharmony_ci - The device supports clipping/blending using the inverted alpha 23762306a36Sopenharmony_ci channel of the framebuffer or VGA signal. Alpha blending makes no 23862306a36Sopenharmony_ci sense for destructive overlays. 23962306a36Sopenharmony_ci * - ``V4L2_FBUF_CAP_SRC_CHROMAKEY`` 24062306a36Sopenharmony_ci - 0x0080 24162306a36Sopenharmony_ci - The device supports Source Chroma-keying. Video pixels with the 24262306a36Sopenharmony_ci chroma-key colors are replaced by framebuffer pixels, which is 24362306a36Sopenharmony_ci exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY`` 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci.. tabularcolumns:: |p{7.4cm}|p{1.6cm}|p{8.3cm}| 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci.. _framebuffer-flags: 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci.. cssclass:: longtable 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci.. flat-table:: Frame Buffer Flags 25262306a36Sopenharmony_ci :header-rows: 0 25362306a36Sopenharmony_ci :stub-columns: 0 25462306a36Sopenharmony_ci :widths: 3 1 4 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_PRIMARY`` 25762306a36Sopenharmony_ci - 0x0001 25862306a36Sopenharmony_ci - The framebuffer is the primary graphics surface. In other words, 25962306a36Sopenharmony_ci the overlay is destructive. This flag is typically set by any 26062306a36Sopenharmony_ci driver that doesn't have the ``V4L2_FBUF_CAP_EXTERNOVERLAY`` 26162306a36Sopenharmony_ci capability and it is cleared otherwise. 26262306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_OVERLAY`` 26362306a36Sopenharmony_ci - 0x0002 26462306a36Sopenharmony_ci - If this flag is set for a video capture device, then the driver 26562306a36Sopenharmony_ci will set the initial overlay size to cover the full framebuffer 26662306a36Sopenharmony_ci size, otherwise the existing overlay size (as set by 26762306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`) will be used. Only one 26862306a36Sopenharmony_ci video capture driver (bttv) supports this flag. The use of this 26962306a36Sopenharmony_ci flag for capture devices is deprecated. There is no way to detect 27062306a36Sopenharmony_ci which drivers support this flag, so the only reliable method of 27162306a36Sopenharmony_ci setting the overlay size is through 27262306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. If this flag is set for a 27362306a36Sopenharmony_ci video output device, then the video output overlay window is 27462306a36Sopenharmony_ci relative to the top-left corner of the framebuffer and restricted 27562306a36Sopenharmony_ci to the size of the framebuffer. If it is cleared, then the video 27662306a36Sopenharmony_ci output overlay window is relative to the video output display. 27762306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_CHROMAKEY`` 27862306a36Sopenharmony_ci - 0x0004 27962306a36Sopenharmony_ci - Use chroma-keying. The chroma-key color is determined by the 28062306a36Sopenharmony_ci ``chromakey`` field of struct :c:type:`v4l2_window` 28162306a36Sopenharmony_ci and negotiated with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` 28262306a36Sopenharmony_ci ioctl, see :ref:`overlay` and :ref:`osd`. 28362306a36Sopenharmony_ci * - :cspan:`2` There are no flags to enable clipping using a list of 28462306a36Sopenharmony_ci clip rectangles or a bitmap. These methods are negotiated with the 28562306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay` 28662306a36Sopenharmony_ci and :ref:`osd`. 28762306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_LOCAL_ALPHA`` 28862306a36Sopenharmony_ci - 0x0008 28962306a36Sopenharmony_ci - Use the alpha channel of the framebuffer to clip or blend 29062306a36Sopenharmony_ci framebuffer pixels with video images. The blend function is: 29162306a36Sopenharmony_ci output = framebuffer pixel * alpha + video pixel * (1 - alpha). 29262306a36Sopenharmony_ci The actual alpha depth depends on the framebuffer pixel format. 29362306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_GLOBAL_ALPHA`` 29462306a36Sopenharmony_ci - 0x0010 29562306a36Sopenharmony_ci - Use a global alpha value to blend the framebuffer with video 29662306a36Sopenharmony_ci images. The blend function is: output = (framebuffer pixel * alpha 29762306a36Sopenharmony_ci + video pixel * (255 - alpha)) / 255. The alpha value is 29862306a36Sopenharmony_ci determined by the ``global_alpha`` field of struct 29962306a36Sopenharmony_ci :c:type:`v4l2_window` and negotiated with the 30062306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay` 30162306a36Sopenharmony_ci and :ref:`osd`. 30262306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_LOCAL_INV_ALPHA`` 30362306a36Sopenharmony_ci - 0x0020 30462306a36Sopenharmony_ci - Like ``V4L2_FBUF_FLAG_LOCAL_ALPHA``, use the alpha channel of the 30562306a36Sopenharmony_ci framebuffer to clip or blend framebuffer pixels with video images, 30662306a36Sopenharmony_ci but with an inverted alpha value. The blend function is: output = 30762306a36Sopenharmony_ci framebuffer pixel * (1 - alpha) + video pixel * alpha. The actual 30862306a36Sopenharmony_ci alpha depth depends on the framebuffer pixel format. 30962306a36Sopenharmony_ci * - ``V4L2_FBUF_FLAG_SRC_CHROMAKEY`` 31062306a36Sopenharmony_ci - 0x0040 31162306a36Sopenharmony_ci - Use source chroma-keying. The source chroma-key color is 31262306a36Sopenharmony_ci determined by the ``chromakey`` field of struct 31362306a36Sopenharmony_ci :c:type:`v4l2_window` and negotiated with the 31462306a36Sopenharmony_ci :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, see :ref:`overlay` 31562306a36Sopenharmony_ci and :ref:`osd`. Both chroma-keying are mutual exclusive to each 31662306a36Sopenharmony_ci other, so same ``chromakey`` field of struct 31762306a36Sopenharmony_ci :c:type:`v4l2_window` is being used. 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ciReturn Value 32062306a36Sopenharmony_ci============ 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set 32362306a36Sopenharmony_ciappropriately. The generic error codes are described at the 32462306a36Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter. 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ciEPERM 32762306a36Sopenharmony_ci :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` can only be called by a privileged user to 32862306a36Sopenharmony_ci negotiate the parameters for a destructive overlay. 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ciEINVAL 33162306a36Sopenharmony_ci The :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` parameters are unsuitable. 332