arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / userspace-api / media / v4l / vidioc-g-jpegcomp.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: V4L
3
4 .. _VIDIOC_G_JPEGCOMP:
5
6 ******************************************
7 ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
8 ******************************************
9
10 Name
11 ====
12
13 VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP
14
15 Synopsis
16 ========
17
18 .. c:macro:: VIDIOC_G_JPEGCOMP
19
20 ``int ioctl(int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp)``
21
22 .. c:macro:: VIDIOC_S_JPEGCOMP
23
24 ``int ioctl(int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp)``
25
26 Arguments
27 =========
28
29 ``fd``
30     File descriptor returned by :c:func:`open()`.
31
32 ``argp``
33     Pointer to struct :c:type:`v4l2_jpegcompression`.
34
35 Description
36 ===========
37
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.
41
42 [to do]
43
44 Ronald Bultje elaborates:
45
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.
50
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.
56
57 .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.1cm}|
58
59 .. c:type:: v4l2_jpegcompression
60
61 .. flat-table:: struct v4l2_jpegcompression
62     :header-rows:  0
63     :stub-columns: 0
64     :widths:       1 1 2
65
66     * - int
67       - ``quality``
68       - Deprecated. If
69         :ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>`
70         control is exposed by a driver applications should use it instead
71         and ignore this field.
72     * - int
73       - ``APPn``
74       -
75     * - int
76       - ``APP_len``
77       -
78     * - char
79       - ``APP_data``\ [60]
80       -
81     * - int
82       - ``COM_len``
83       -
84     * - char
85       - ``COM_data``\ [60]
86       -
87     * - __u32
88       - ``jpeg_markers``
89       - See :ref:`jpeg-markers`. Deprecated. If
90         :ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>`
91         control is exposed by a driver applications should use it instead
92         and ignore this field.
93
94 .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
95
96 .. _jpeg-markers:
97
98 .. flat-table:: JPEG Markers Flags
99     :header-rows:  0
100     :stub-columns: 0
101     :widths:       3 1 4
102
103     * - ``V4L2_JPEG_MARKER_DHT``
104       - (1<<3)
105       - Define Huffman Tables
106     * - ``V4L2_JPEG_MARKER_DQT``
107       - (1<<4)
108       - Define Quantization Tables
109     * - ``V4L2_JPEG_MARKER_DRI``
110       - (1<<5)
111       - Define Restart Interval
112     * - ``V4L2_JPEG_MARKER_COM``
113       - (1<<6)
114       - Comment segment
115     * - ``V4L2_JPEG_MARKER_APP``
116       - (1<<7)
117       - App segment, driver will always use APP0
118
119 Return Value
120 ============
121
122 On success 0 is returned, on error -1 and the ``errno`` variable is set
123 appropriately. The generic error codes are described at the
124 :ref:`Generic Error Codes <gen-errors>` chapter.