Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: V4L
3
4.. _VIDIOC_G_JPEGCOMP:
5
6******************************************
7ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
8******************************************
9
10Name
11====
12
13VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP
14
15Synopsis
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
26Arguments
27=========
28
29``fd``
30 File descriptor returned by :c:func:`open()`.
31
32``argp``
33 Pointer to struct :c:type:`v4l2_jpegcompression`.
34
35Description
36===========
37
38These ioctls are **deprecated**. New drivers and applications should use
39:ref:`JPEG class controls <jpeg-controls>` for image quality and JPEG
40markers control.
41
42[to do]
43
44Ronald Bultje elaborates:
45
46APP is some application-specific information. The application can set it
47itself, and it'll be stored in the JPEG-encoded fields (eg; interlacing
48information for in an AVI or so). COM is the same, but it's comments,
49like 'encoded by me' or so.
50
51jpeg_markers describes whether the huffman tables, quantization tables
52and the restart interval information (all JPEG-specific stuff) should be
53stored in the JPEG-encoded fields. These define how the JPEG field is
54encoded. If you omit them, applications assume you've used standard
55encoding. 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
119Return Value
120============
121
122On success 0 is returned, on error -1 and the ``errno`` variable is set
123appropriately. The generic error codes are described at the
124:ref:`Generic Error Codes <gen-errors>` chapter.