2020-08-26 07:03:09 +00:00
|
|
|
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
2020-09-24 12:04:26 +00:00
|
|
|
.. c:namespace:: V4L
|
2018-08-30 14:15:26 +00:00
|
|
|
|
2016-07-01 16:42:29 +00:00
|
|
|
.. _VIDIOC_G_PRIORITY:
|
2016-06-30 13:18:56 +00:00
|
|
|
|
|
|
|
******************************************
|
|
|
|
ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY
|
|
|
|
******************************************
|
|
|
|
|
2016-07-05 18:14:35 +00:00
|
|
|
Name
|
2016-07-05 10:58:48 +00:00
|
|
|
====
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2016-07-05 10:58:48 +00:00
|
|
|
VIDIOC_G_PRIORITY - VIDIOC_S_PRIORITY - Query or request the access priority associated with a file descriptor
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2016-07-05 18:14:35 +00:00
|
|
|
Synopsis
|
2016-06-30 13:18:56 +00:00
|
|
|
========
|
|
|
|
|
2020-09-24 12:04:26 +00:00
|
|
|
.. c:macro:: VIDIOC_G_PRIORITY
|
|
|
|
|
|
|
|
``int ioctl(int fd, VIDIOC_G_PRIORITY, enum v4l2_priority *argp)``
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2020-09-24 12:04:26 +00:00
|
|
|
.. c:macro:: VIDIOC_S_PRIORITY
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2020-09-24 12:04:26 +00:00
|
|
|
``int ioctl(int fd, VIDIOC_S_PRIORITY, const enum v4l2_priority *argp)``
|
2016-07-05 10:58:48 +00:00
|
|
|
|
2016-07-05 18:14:35 +00:00
|
|
|
Arguments
|
2016-06-30 13:18:56 +00:00
|
|
|
=========
|
|
|
|
|
|
|
|
``fd``
|
2020-09-24 12:04:26 +00:00
|
|
|
File descriptor returned by :c:func:`open()`.
|
2016-06-30 13:18:56 +00:00
|
|
|
|
|
|
|
``argp``
|
2017-09-02 13:54:48 +00:00
|
|
|
Pointer to an enum :c:type:`v4l2_priority` type.
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2016-07-05 18:14:35 +00:00
|
|
|
Description
|
2016-06-30 13:18:56 +00:00
|
|
|
===========
|
|
|
|
|
|
|
|
To query the current access priority applications call the
|
2016-07-03 13:02:29 +00:00
|
|
|
:ref:`VIDIOC_G_PRIORITY <VIDIOC_G_PRIORITY>` ioctl with a pointer to an enum v4l2_priority
|
2016-06-30 13:18:56 +00:00
|
|
|
variable where the driver stores the current priority.
|
|
|
|
|
|
|
|
To request an access priority applications store the desired priority in
|
2016-07-01 17:33:56 +00:00
|
|
|
an enum v4l2_priority variable and call :ref:`VIDIOC_S_PRIORITY <VIDIOC_G_PRIORITY>` ioctl
|
2016-06-30 13:18:56 +00:00
|
|
|
with a pointer to this variable.
|
|
|
|
|
2016-08-29 21:40:21 +00:00
|
|
|
.. c:type:: v4l2_priority
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2020-12-10 10:39:46 +00:00
|
|
|
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
|
[media] docs-rst: add tabularcolumns to all tables
LaTeX doesn't handle too well auto-width on tables, and ReST
markup requires an special tag to give it the needed hints.
As we're using A4 paper, we have 17cm of useful spaces. As
most media tables have widths, let's use it to generate the
needed via the following perl script:
my ($line_size, $table_header, $has_cols) = (17.5, 0, 0);
my $out;
my $header = "";
my @widths = ();
sub round { $_[0] > 0 ? int($_[0] + .5) : -int(-$_[0] + .5) }
while (<>) {
if (!$table_header) {
$has_cols = 1 if (m/..\s+tabularcolumns::/);
if (m/..\s+flat-table::/) {
$table_header = 1;
$header = $_;
next;
}
$out .= $_;
next;
}
$header .= $_;
@widths = split(/ /, $1) if (m/:widths:\s+(.*)/);
if (m/^\n$/) {
if (!$has_cols && @widths) {
my ($tot, $t, $i) = (0, 0, 0);
foreach my $v(@widths) { $tot += $v; };
$out .= ".. tabularcolumns:: |";
for ($i = 0; $i < scalar @widths - 1; $i++) {
my $v = $widths[$i];
my $w = round(10 * ($v * $line_size) / $tot) / 10;
$out .= sprintf "p{%.1fcm}|", $w;
$t += $w;
}
my $w = $line_size - $t;
$out .= sprintf "p{%.1fcm}|\n\n", $w;
}
$out .= $header;
$table_header = 0;
$has_cols = 0;
$header = "";
@widths = ();
}
}
print $out;
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-08-17 11:14:19 +00:00
|
|
|
|
2016-06-30 13:18:56 +00:00
|
|
|
.. flat-table:: enum v4l2_priority
|
|
|
|
:header-rows: 0
|
|
|
|
:stub-columns: 0
|
|
|
|
:widths: 3 1 4
|
|
|
|
|
[media] v4l: doc: Remove row numbers from tables
Shorten the tables by removing row numbers in comments, allowing for
later insertion of rows with minimal diffs.
All changes have been generated by the following script.
import io
import re
import sys
def process_table(fname, data):
if fname.endswith('hist-v4l2.rst'):
data = re.sub(u'\n{1,2}\t( ?) -( ?) ?', u'\n\t\\1 -\\2', data, flags = re.MULTILINE)
data = re.sub(u'\n(\t| )- \.\. row [0-9]+\n\t ?-( ?) ?', u'\\1* -\\2', data, flags = re.MULTILINE)
else:
data = re.sub(u'\n{1,2} -( ?) ?', u'\n -\\1', data, flags = re.MULTILINE)
data = re.sub(u'(\n?)(\n\n - \.\. row 1\n)', u'\n\\2', data, flags = re.MULTILINE)
data = re.sub(u'\n - \.\. row [0-9]+\n -( ?) ?', u' * -\\1', data, flags = re.MULTILINE)
data = re.sub(u'\n - \.\. row [0-9]+\n \.\. (_[A-Z0-9_`-]*:)', u'\n - .. \\1', data, flags = re.MULTILINE)
data = re.sub(u'\n - \.\. (_[A-Z0-9_`-]*:)\n -', u' * .. \\1\n\n -', data, flags = re.MULTILINE)
data = re.sub(u'^ - ', u' -', data, flags = re.MULTILINE)
data = re.sub(u'^(\t{1,2}) ', u'\\1', data, flags = re.MULTILINE)
return data
def process_file(fname, data):
buf = io.StringIO(data)
output = ''
in_table = False
table_separator = 0
for line in buf.readlines():
if line.find('.. flat-table::') != -1:
in_table = True
table = ''
elif in_table and not re.match('^[\t\n]|( )', line):
in_table = False
output += process_table(fname, table)
if in_table:
table += line
else:
output += line
if in_table:
in_table = False
output += process_table(fname, table)
return output
fname = sys.argv[1]
data = file(fname, 'rb').read().decode('utf-8')
data = process_file(fname, data)
file(fname, 'wb').write(data.encode('utf-8'))
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2016-09-05 11:44:34 +00:00
|
|
|
* - ``V4L2_PRIORITY_UNSET``
|
|
|
|
- 0
|
|
|
|
-
|
|
|
|
* - ``V4L2_PRIORITY_BACKGROUND``
|
|
|
|
- 1
|
|
|
|
- Lowest priority, usually applications running in background, for
|
|
|
|
example monitoring VBI transmissions. A proxy application running
|
|
|
|
in user space will be necessary if multiple applications want to
|
|
|
|
read from a device at this priority.
|
|
|
|
* - ``V4L2_PRIORITY_INTERACTIVE``
|
|
|
|
- 2
|
|
|
|
-
|
|
|
|
* - ``V4L2_PRIORITY_DEFAULT``
|
|
|
|
- 2
|
|
|
|
- Medium priority, usually applications started and interactively
|
|
|
|
controlled by the user. For example TV viewers, Teletext browsers,
|
|
|
|
or just "panel" applications to change the channel or video
|
|
|
|
controls. This is the default priority unless an application
|
|
|
|
requests another.
|
|
|
|
* - ``V4L2_PRIORITY_RECORD``
|
|
|
|
- 3
|
|
|
|
- Highest priority. Only one file descriptor can have this priority,
|
|
|
|
it blocks any other fd from changing device properties. Usually
|
|
|
|
applications which must not be interrupted, like video recording.
|
2016-06-30 13:18:56 +00:00
|
|
|
|
2016-07-05 18:14:35 +00:00
|
|
|
Return Value
|
2016-06-30 13:18:56 +00:00
|
|
|
============
|
|
|
|
|
|
|
|
On success 0 is returned, on error -1 and the ``errno`` variable is set
|
|
|
|
appropriately. The generic error codes are described at the
|
|
|
|
:ref:`Generic Error Codes <gen-errors>` chapter.
|
|
|
|
|
|
|
|
EINVAL
|
|
|
|
The requested priority value is invalid.
|
|
|
|
|
|
|
|
EBUSY
|
|
|
|
Another application already requested higher priority.
|