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

指向 enum 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

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