.. 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 ` 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 ` 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 ` 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 ` chapter.