Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | |
| 3 | .. _app-pri: |
| 4 | |
| 5 | ******************** |
| 6 | Application Priority |
| 7 | ******************** |
| 8 | |
| 9 | When multiple applications share a device it may be desirable to assign |
| 10 | them different priorities. Contrary to the traditional "rm -rf /" school |
| 11 | of thought a video recording application could for example block other |
| 12 | applications from changing video controls or switching the current TV |
| 13 | channel. Another objective is to permit low priority applications |
| 14 | working in background, which can be preempted by user controlled |
| 15 | applications and automatically regain control of the device at a later |
| 16 | time. |
| 17 | |
| 18 | Since these features cannot be implemented entirely in user space V4L2 |
Mauro Carvalho Chehab | 4e03cb7 | 2016-07-03 10:02:29 -0300 | [diff] [blame] | 19 | defines the :ref:`VIDIOC_G_PRIORITY <VIDIOC_G_PRIORITY>` and |
Mauro Carvalho Chehab | af4a4d0 | 2016-07-01 13:42:29 -0300 | [diff] [blame] | 20 | :ref:`VIDIOC_S_PRIORITY <VIDIOC_G_PRIORITY>` ioctls to request and |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 21 | query the access priority associate with a file descriptor. Opening a |
| 22 | device assigns a medium priority, compatible with earlier versions of |
| 23 | V4L2 and drivers not supporting these ioctls. Applications requiring a |
Mauro Carvalho Chehab | e6702ee | 2016-06-30 21:58:44 -0300 | [diff] [blame] | 24 | different priority will usually call :ref:`VIDIOC_S_PRIORITY |
Mauro Carvalho Chehab | af4a4d0 | 2016-07-01 13:42:29 -0300 | [diff] [blame] | 25 | <VIDIOC_G_PRIORITY>` after verifying the device with the |
Mauro Carvalho Chehab | 7347081 | 2016-07-01 13:58:44 -0300 | [diff] [blame] | 26 | :ref:`VIDIOC_QUERYCAP` ioctl. |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 27 | |
| 28 | Ioctls changing driver properties, such as |
Mauro Carvalho Chehab | cdb4af0 | 2016-07-03 11:53:09 -0300 | [diff] [blame^] | 29 | :ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>`, return an ``EBUSY`` error code |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 30 | after another application obtained higher priority. |
| 31 | |
| 32 | |
| 33 | .. ------------------------------------------------------------------------------ |
| 34 | .. This file was automatically converted from DocBook-XML with the dbxml |
| 35 | .. library (https://github.com/return42/sphkerneldoc). The origin XML comes |
| 36 | .. from the linux kernel, refer to: |
| 37 | .. |
| 38 | .. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook |
| 39 | .. ------------------------------------------------------------------------------ |