7.38. ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY

7.38.1. 名称

VIDIOC_G_PRIORITY - VIDIOC_S_PRIORITY - 查询或请求与文件描述符关联的访问优先级

7.38.2. 概要

VIDIOC_G_PRIORITY

int ioctl(int fd, VIDIOC_G_PRIORITY, enum v4l2_priority *argp)

VIDIOC_S_PRIORITY

int ioctl(int fd, VIDIOC_S_PRIORITY, const enum v4l2_priority *argp)

7.38.3. 参数

fd

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

argp

指向 v4l2_priority 枚举类型的指针。

7.38.4. 描述

要查询当前的访问优先级,应用程序调用 VIDIOC_G_PRIORITY ioctl,并提供一个指向 enum v4l2_priority 变量的指针,驱动程序会将当前优先级存储在该变量中。

要请求访问优先级,应用程序将所需的优先级存储在 enum v4l2_priority 变量中,并调用 VIDIOC_S_PRIORITY ioctl,并提供指向该变量的指针。

type v4l2_priority
enum v4l2_priority

V4L2_PRIORITY_UNSET

0

V4L2_PRIORITY_BACKGROUND

1

最低优先级,通常用于在后台运行的应用程序,例如监视 VBI 传输。如果多个应用程序希望以该优先级从设备读取数据,则需要在用户空间运行代理应用程序。

V4L2_PRIORITY_INTERACTIVE

2

V4L2_PRIORITY_DEFAULT

2

中等优先级,通常用于用户启动并交互控制的应用程序。例如,电视观看器、图文电视浏览器,或者只是用于更改频道或视频控制的“面板”应用程序。除非应用程序请求其他优先级,否则这是默认优先级。

V4L2_PRIORITY_RECORD

3

最高优先级。只有一个文件描述符可以拥有此优先级,它会阻止任何其他 fd 更改设备属性。通常用于必须不被中断的应用程序,如视频录制。

7.38.5. 返回值

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

EINVAL

请求的优先级值无效。

EBUSY

另一个应用程序已经请求了更高的优先级。