Back to Linux

ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP

Documentation/userspace-api/media/v4l/vidioc-g-jpegcomp.rst

7.03.0 KB
Original Source

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later .. c:namespace:: V4L

.. _VIDIOC_G_JPEGCOMP:


ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP


Name

VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP

Synopsis

.. c:macro:: VIDIOC_G_JPEGCOMP

int ioctl(int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp)

.. c:macro:: VIDIOC_S_JPEGCOMP

int ioctl(int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp)

Arguments

fd File descriptor returned by :c:func:open().

argp Pointer to struct :c:type:v4l2_jpegcompression.

Description

These ioctls are deprecated. New drivers and applications should use :ref:JPEG class controls <jpeg-controls> for image quality and JPEG markers control.

[to do]

Ronald Bultje elaborates:

APP is some application-specific information. The application can set it itself, and it'll be stored in the JPEG-encoded fields (eg; interlacing information for in an AVI or so). COM is the same, but it's comments, like 'encoded by me' or so.

jpeg_markers describes whether the huffman tables, quantization tables and the restart interval information (all JPEG-specific stuff) should be stored in the JPEG-encoded fields. These define how the JPEG field is encoded. If you omit them, applications assume you've used standard encoding. You usually do want to add them.

.. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.1cm}|

.. c:type:: v4l2_jpegcompression

.. flat-table:: struct v4l2_jpegcompression :header-rows: 0 :stub-columns: 0 :widths: 1 1 2

* - int
  - ``quality``
  - Deprecated. If
:ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>`
control is exposed by a driver applications should use it instead
and ignore this field.
* - int
  - ``APPn``
  -
* - int
  - ``APP_len``
  -
* - char
  - ``APP_data``\ [60]
  -
* - int
  - ``COM_len``
  -
* - char
  - ``COM_data``\ [60]
  -
* - __u32
  - ``jpeg_markers``
  - See :ref:`jpeg-markers`. Deprecated. If
:ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>`
control is exposed by a driver applications should use it instead
and ignore this field.

.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|

.. _jpeg-markers:

.. flat-table:: JPEG Markers Flags :header-rows: 0 :stub-columns: 0 :widths: 3 1 4

* - ``V4L2_JPEG_MARKER_DHT``
  - (1<<3)
  - Define Huffman Tables
* - ``V4L2_JPEG_MARKER_DQT``
  - (1<<4)
  - Define Quantization Tables
* - ``V4L2_JPEG_MARKER_DRI``
  - (1<<5)
  - Define Restart Interval
* - ``V4L2_JPEG_MARKER_COM``
  - (1<<6)
  - Comment segment
* - ``V4L2_JPEG_MARKER_APP``
  - (1<<7)
  - App segment, driver will always use APP0

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 :ref:Generic Error Codes <gen-errors> chapter.