ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP

&manvol;

VIDIOC_G_JPEGCOMP

VIDIOC_S_JPEGCOMP

    	int ioctl
    	int fd
    	int request
    	v4l2_jpegcompression *argp

    	int ioctl
    	int fd
    	int request
    	const v4l2_jpegcompression *argp

## Arguments

`fd`

- &fd;

`request`

- VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP

`argp`

## Description

These ioctls are deprecated. New drivers and applications should use JPEG class 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.

## struct v4l2_jpegcompression

&cs-str;
int | quality | Deprecated. If `V4L2_CID_JPEG_COMPRESSION_QUALITY` 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 jpeg-markers. Deprecated. If `V4L2_CID_JPEG_ACTIVE_MARKER` control is exposed by a driver applications should use it instead and ignore this field.

## JPEG Markers Flags

&cs-def;
`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;