135 lines
3.4 KiB
ReStructuredText
135 lines
3.4 KiB
ReStructuredText
|
.. Permission is granted to copy, distribute and/or modify this
|
||
|
.. document under the terms of the GNU Free Documentation License,
|
||
|
.. Version 1.1 or any later version published by the Free Software
|
||
|
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||
|
.. and no Back-Cover Texts. A copy of the license is included at
|
||
|
.. Documentation/media/uapi/fdl-appendix.rst.
|
||
|
..
|
||
|
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
|
||
|
|
||
|
.. _VIDIOC_G_JPEGCOMP:
|
||
|
|
||
|
******************************************
|
||
|
ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
|
||
|
******************************************
|
||
|
|
||
|
Name
|
||
|
====
|
||
|
|
||
|
VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP
|
||
|
|
||
|
|
||
|
Synopsis
|
||
|
========
|
||
|
|
||
|
.. c:function:: int ioctl( int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp )
|
||
|
:name: VIDIOC_G_JPEGCOMP
|
||
|
|
||
|
.. c:function:: int ioctl( int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp )
|
||
|
:name: VIDIOC_S_JPEGCOMP
|
||
|
|
||
|
|
||
|
Arguments
|
||
|
=========
|
||
|
|
||
|
``fd``
|
||
|
File descriptor returned by :ref:`open() <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.3cm}|
|
||
|
|
||
|
.. 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.7cm}|
|
||
|
|
||
|
.. _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.
|