Linux 4.8.3
[linux/fpc-iii.git] / Documentation / media / uapi / v4l / vidioc-g-jpegcomp.rst
blobf5bf8b7915edda5ed093307cd370fcc11962cc33
1 .. -*- coding: utf-8; mode: rst -*-
3 .. _VIDIOC_G_JPEGCOMP:
5 ******************************************
6 ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
7 ******************************************
9 Name
10 ====
12 VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP
15 Synopsis
16 ========
18 .. cpp:function:: int ioctl( int fd, int request, v4l2_jpegcompression *argp )
20 .. cpp:function:: int ioctl( int fd, int request, const v4l2_jpegcompression *argp )
23 Arguments
24 =========
26 ``fd``
27     File descriptor returned by :ref:`open() <func-open>`.
29 ``request``
30     VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
32 ``argp``
35 Description
36 ===========
38 These ioctls are **deprecated**. New drivers and applications should use
39 :ref:`JPEG class controls <jpeg-controls>` for image quality and JPEG
40 markers control.
42 [to do]
44 Ronald Bultje elaborates:
46 APP is some application-specific information. The application can set it
47 itself, and it'll be stored in the JPEG-encoded fields (eg; interlacing
48 information for in an AVI or so). COM is the same, but it's comments,
49 like 'encoded by me' or so.
51 jpeg_markers describes whether the huffman tables, quantization tables
52 and the restart interval information (all JPEG-specific stuff) should be
53 stored in the JPEG-encoded fields. These define how the JPEG field is
54 encoded. If you omit them, applications assume you've used standard
55 encoding. You usually do want to add them.
58 .. _v4l2-jpegcompression:
60 .. flat-table:: struct v4l2_jpegcompression
61     :header-rows:  0
62     :stub-columns: 0
63     :widths:       1 1 2
66     -  .. row 1
68        -  int
70        -  ``quality``
72        -  Deprecated. If
73           :ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>`
74           control is exposed by a driver applications should use it instead
75           and ignore this field.
77     -  .. row 2
79        -  int
81        -  ``APPn``
83        -
85     -  .. row 3
87        -  int
89        -  ``APP_len``
91        -
93     -  .. row 4
95        -  char
97        -  ``APP_data``\ [60]
99        -
101     -  .. row 5
103        -  int
105        -  ``COM_len``
107        -
109     -  .. row 6
111        -  char
113        -  ``COM_data``\ [60]
115        -
117     -  .. row 7
119        -  __u32
121        -  ``jpeg_markers``
123        -  See :ref:`jpeg-markers`. Deprecated. If
124           :ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>`
125           control is exposed by a driver applications should use it instead
126           and ignore this field.
130 .. _jpeg-markers:
132 .. flat-table:: JPEG Markers Flags
133     :header-rows:  0
134     :stub-columns: 0
135     :widths:       3 1 4
138     -  .. row 1
140        -  ``V4L2_JPEG_MARKER_DHT``
142        -  (1<<3)
144        -  Define Huffman Tables
146     -  .. row 2
148        -  ``V4L2_JPEG_MARKER_DQT``
150        -  (1<<4)
152        -  Define Quantization Tables
154     -  .. row 3
156        -  ``V4L2_JPEG_MARKER_DRI``
158        -  (1<<5)
160        -  Define Restart Interval
162     -  .. row 4
164        -  ``V4L2_JPEG_MARKER_COM``
166        -  (1<<6)
168        -  Comment segment
170     -  .. row 5
172        -  ``V4L2_JPEG_MARKER_APP``
174        -  (1<<7)
176        -  App segment, driver will always use APP0
179 Return Value
180 ============
182 On success 0 is returned, on error -1 and the ``errno`` variable is set
183 appropriately. The generic error codes are described at the
184 :ref:`Generic Error Codes <gen-errors>` chapter.