7.34. ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP

7.34.1. 名称

VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP

7.34.2. 概要

VIDIOC_G_JPEGCOMP

int ioctl(int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp)

VIDIOC_S_JPEGCOMP

int ioctl(int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp)

7.34.3. 参数

fd

open() 返回的文件描述符。

argp

指向结构体 v4l2_jpegcompression 的指针。

7.34.4. 描述

这些 ioctl 已被弃用。新的驱动程序和应用程序应使用 JPEG 类控件 来控制图像质量和 JPEG 标记。

[待办]

Ronald Bultje 详细说明

APP 是一些特定于应用程序的信息。 应用程序可以自己设置它,它将存储在 JPEG 编码的字段中(例如,AVI 中的隔行扫描信息)。 COM 是相同的,但它是注释,如“由我编码”等。

jpeg_markers 描述是否应将霍夫曼表、量化表和重启间隔信息(所有 JPEG 特有的内容)存储在 JPEG 编码的字段中。 这些定义了 JPEG 字段的编码方式。 如果您省略它们,应用程序会假设您使用了标准编码。 通常您确实想添加它们。

type v4l2_jpegcompression
struct v4l2_jpegcompression

int

quality

已弃用。 如果驱动程序公开了 V4L2_CID_JPEG_COMPRESSION_QUALITY 控件,则应用程序应改用它并忽略此字段。

int

APPn

int

APP_len

char

APP_data[60]

int

COM_len

char

COM_data[60]

__u32

jpeg_markers

请参阅 JPEG 标记标志。 已弃用。 如果驱动程序公开了 V4L2_CID_JPEG_ACTIVE_MARKER 控件,则应用程序应改用它并忽略此字段。

JPEG 标记标志

V4L2_JPEG_MARKER_DHT

(1<<3)

定义霍夫曼表

V4L2_JPEG_MARKER_DQT

(1<<4)

定义量化表

V4L2_JPEG_MARKER_DRI

(1<<5)

定义重启间隔

V4L2_JPEG_MARKER_COM

(1<<6)

注释段

V4L2_JPEG_MARKER_APP

(1<<7)

App 段,驱动程序将始终使用 APP0

7.34.5. 返回值

成功时返回 0,错误时返回 -1,并且会适当设置 errno 变量。 通用错误代码在 通用错误代码 章节中描述。