summaryrefslogtreecommitdiff
path: root/linux/Documentation/DocBook/v4l/vidioc-g-priority.xml
blob: 5fb001978645a337560b26d5f4b8aded252e5bd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<refentry id="vidioc-g-priority">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_G_PRIORITY</refname>
    <refname>VIDIOC_S_PRIORITY</refname>
    <refpurpose>Query or request the access priority associated with a
file descriptor</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>enum v4l2_priority *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>const enum v4l2_priority *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para>Pointer to an enum v4l2_priority type.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>To query the current access priority
applications call the <constant>VIDIOC_G_PRIORITY</constant> ioctl
with a pointer to an enum v4l2_priority variable where the driver stores
the current priority.</para>

    <para>To request an access priority applications store the
desired priority in an enum v4l2_priority variable and call
<constant>VIDIOC_S_PRIORITY</constant> ioctl with a pointer to this
variable.</para>

    <table frame="none" pgwide="1" id="v4l2-priority">
      <title>enum v4l2_priority</title>
      <tgroup cols="3">
	&cs-def;
	<tbody valign="top">
	  <row>
	    <entry><constant>V4L2_PRIORITY_UNSET</constant></entry>
	    <entry>0</entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_PRIORITY_BACKGROUND</constant></entry>
	    <entry>1</entry>
	    <entry>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.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_PRIORITY_INTERACTIVE</constant></entry>
	    <entry>2</entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_PRIORITY_DEFAULT</constant></entry>
	    <entry>2</entry>
	    <entry>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.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_PRIORITY_RECORD</constant></entry>
	    <entry>3</entry>
	    <entry>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.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>The requested priority value is invalid, or the
driver does not support access priorities.</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><errorcode>EBUSY</errorcode></term>
	<listitem>
	  <para>Another application already requested higher
priority.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>

<!--
Local Variables:
mode: sgml
sgml-parent-document: "v4l2.sgml"
indent-tabs-mode: nil
End:
-->