1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*4882a593Smuzhiyun.. c:namespace:: V4L 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun.. _VIDIOC_G_JPEGCOMP: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun****************************************** 7*4882a593Smuzhiyunioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP 8*4882a593Smuzhiyun****************************************** 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunName 11*4882a593Smuzhiyun==== 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunVIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunSynopsis 16*4882a593Smuzhiyun======== 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun.. c:macro:: VIDIOC_G_JPEGCOMP 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun``int ioctl(int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp)`` 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun.. c:macro:: VIDIOC_S_JPEGCOMP 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun``int ioctl(int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp)`` 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunArguments 27*4882a593Smuzhiyun========= 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun``fd`` 30*4882a593Smuzhiyun File descriptor returned by :c:func:`open()`. 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun``argp`` 33*4882a593Smuzhiyun Pointer to struct :c:type:`v4l2_jpegcompression`. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunDescription 36*4882a593Smuzhiyun=========== 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunThese ioctls are **deprecated**. New drivers and applications should use 39*4882a593Smuzhiyun:ref:`JPEG class controls <jpeg-controls>` for image quality and JPEG 40*4882a593Smuzhiyunmarkers control. 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun[to do] 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunRonald Bultje elaborates: 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunAPP is some application-specific information. The application can set it 47*4882a593Smuzhiyunitself, and it'll be stored in the JPEG-encoded fields (eg; interlacing 48*4882a593Smuzhiyuninformation for in an AVI or so). COM is the same, but it's comments, 49*4882a593Smuzhiyunlike 'encoded by me' or so. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyunjpeg_markers describes whether the huffman tables, quantization tables 52*4882a593Smuzhiyunand the restart interval information (all JPEG-specific stuff) should be 53*4882a593Smuzhiyunstored in the JPEG-encoded fields. These define how the JPEG field is 54*4882a593Smuzhiyunencoded. If you omit them, applications assume you've used standard 55*4882a593Smuzhiyunencoding. You usually do want to add them. 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun.. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}| 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun.. c:type:: v4l2_jpegcompression 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun.. flat-table:: struct v4l2_jpegcompression 62*4882a593Smuzhiyun :header-rows: 0 63*4882a593Smuzhiyun :stub-columns: 0 64*4882a593Smuzhiyun :widths: 1 1 2 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun * - int 67*4882a593Smuzhiyun - ``quality`` 68*4882a593Smuzhiyun - Deprecated. If 69*4882a593Smuzhiyun :ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY <jpeg-quality-control>` 70*4882a593Smuzhiyun control is exposed by a driver applications should use it instead 71*4882a593Smuzhiyun and ignore this field. 72*4882a593Smuzhiyun * - int 73*4882a593Smuzhiyun - ``APPn`` 74*4882a593Smuzhiyun - 75*4882a593Smuzhiyun * - int 76*4882a593Smuzhiyun - ``APP_len`` 77*4882a593Smuzhiyun - 78*4882a593Smuzhiyun * - char 79*4882a593Smuzhiyun - ``APP_data``\ [60] 80*4882a593Smuzhiyun - 81*4882a593Smuzhiyun * - int 82*4882a593Smuzhiyun - ``COM_len`` 83*4882a593Smuzhiyun - 84*4882a593Smuzhiyun * - char 85*4882a593Smuzhiyun - ``COM_data``\ [60] 86*4882a593Smuzhiyun - 87*4882a593Smuzhiyun * - __u32 88*4882a593Smuzhiyun - ``jpeg_markers`` 89*4882a593Smuzhiyun - See :ref:`jpeg-markers`. Deprecated. If 90*4882a593Smuzhiyun :ref:`V4L2_CID_JPEG_ACTIVE_MARKER <jpeg-active-marker-control>` 91*4882a593Smuzhiyun control is exposed by a driver applications should use it instead 92*4882a593Smuzhiyun and ignore this field. 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun.. _jpeg-markers: 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun.. flat-table:: JPEG Markers Flags 99*4882a593Smuzhiyun :header-rows: 0 100*4882a593Smuzhiyun :stub-columns: 0 101*4882a593Smuzhiyun :widths: 3 1 4 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun * - ``V4L2_JPEG_MARKER_DHT`` 104*4882a593Smuzhiyun - (1<<3) 105*4882a593Smuzhiyun - Define Huffman Tables 106*4882a593Smuzhiyun * - ``V4L2_JPEG_MARKER_DQT`` 107*4882a593Smuzhiyun - (1<<4) 108*4882a593Smuzhiyun - Define Quantization Tables 109*4882a593Smuzhiyun * - ``V4L2_JPEG_MARKER_DRI`` 110*4882a593Smuzhiyun - (1<<5) 111*4882a593Smuzhiyun - Define Restart Interval 112*4882a593Smuzhiyun * - ``V4L2_JPEG_MARKER_COM`` 113*4882a593Smuzhiyun - (1<<6) 114*4882a593Smuzhiyun - Comment segment 115*4882a593Smuzhiyun * - ``V4L2_JPEG_MARKER_APP`` 116*4882a593Smuzhiyun - (1<<7) 117*4882a593Smuzhiyun - App segment, driver will always use APP0 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunReturn Value 120*4882a593Smuzhiyun============ 121*4882a593Smuzhiyun 122*4882a593SmuzhiyunOn success 0 is returned, on error -1 and the ``errno`` variable is set 123*4882a593Smuzhiyunappropriately. The generic error codes are described at the 124*4882a593Smuzhiyun:ref:`Generic Error Codes <gen-errors>` chapter. 125