• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2<HTML
3><HEAD
4><TITLE
5>ioctl VIDIOC_STREAMON, VIDIOC_STREAMOFF</TITLE
6><META
7NAME="GENERATOR"
8CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9REL="HOME"
10TITLE="Video for Linux Two API Specification"
11HREF="book1.htm"><LINK
12REL="UP"
13TITLE="Function Reference"
14HREF="r7624.htm"><LINK
15REL="PREVIOUS"
16TITLE="ioctl VIDIOC_REQBUFS"
17HREF="r13696.htm"><LINK
18REL="NEXT"
19TITLE="V4L2 mmap()"
20HREF="r13889.htm"></HEAD
21><BODY
22CLASS="REFENTRY"
23BGCOLOR="#FFFFFF"
24TEXT="#000000"
25LINK="#0000FF"
26VLINK="#840084"
27ALINK="#0000FF"
28><DIV
29CLASS="NAVHEADER"
30><TABLE
31SUMMARY="Header navigation table"
32WIDTH="100%"
33BORDER="0"
34CELLPADDING="0"
35CELLSPACING="0"
36><TR
37><TH
38COLSPAN="3"
39ALIGN="center"
40>Video for Linux Two API Specification: Revision 0.24</TH
41></TR
42><TR
43><TD
44WIDTH="10%"
45ALIGN="left"
46VALIGN="bottom"
47><A
48HREF="r13696.htm"
49ACCESSKEY="P"
50>Prev</A
51></TD
52><TD
53WIDTH="80%"
54ALIGN="center"
55VALIGN="bottom"
56></TD
57><TD
58WIDTH="10%"
59ALIGN="right"
60VALIGN="bottom"
61><A
62HREF="r13889.htm"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><H1
72><A
73NAME="VIDIOC-STREAMON"
74></A
75>ioctl VIDIOC_STREAMON, VIDIOC_STREAMOFF</H1
76><DIV
77CLASS="REFNAMEDIV"
78><A
79NAME="AEN13821"
80></A
81><H2
82>Name</H2
83>VIDIOC_STREAMON, VIDIOC_STREAMOFF&nbsp;--&nbsp;Start or stop streaming I/O</DIV
84><DIV
85CLASS="REFSYNOPSISDIV"
86><A
87NAME="AEN13825"
88></A
89><H2
90>Synopsis</H2
91><DIV
92CLASS="FUNCSYNOPSIS"
93><P
94></P
95><A
96NAME="AEN13826"
97></A
98><P
99><CODE
100><CODE
101CLASS="FUNCDEF"
102>int ioctl</CODE
103>(int fd, int request, const int *argp);</CODE
104></P
105><P
106></P
107></DIV
108></DIV
109><DIV
110CLASS="REFSECT1"
111><A
112NAME="AEN13836"
113></A
114><H2
115>Arguments</H2
116><P
117></P
118><DIV
119CLASS="VARIABLELIST"
120><DL
121><DT
122><CODE
123CLASS="PARAMETER"
124>fd</CODE
125></DT
126><DD
127><P
128>File descriptor returned by <A
129HREF="r14090.htm"
130><CODE
131CLASS="FUNCTION"
132>open()</CODE
133></A
134>.</P
135></DD
136><DT
137><CODE
138CLASS="PARAMETER"
139>request</CODE
140></DT
141><DD
142><P
143>VIDIOC_STREAMON, VIDIOC_STREAMOFF</P
144></DD
145><DT
146><CODE
147CLASS="PARAMETER"
148>argp</CODE
149></DT
150><DD
151><P
152></P
153></DD
154></DL
155></DIV
156></DIV
157><DIV
158CLASS="REFSECT1"
159><A
160NAME="AEN13856"
161></A
162><H2
163>Description</H2
164><P
165>The <CODE
166CLASS="CONSTANT"
167>VIDIOC_STREAMON</CODE
168> and
169<CODE
170CLASS="CONSTANT"
171>VIDIOC_STREAMOFF</CODE
172> ioctl start and stop the capture
173or output process during streaming (<A
174HREF="x5791.htm"
175>memory
176mapping</A
177> or <A
178HREF="x5884.htm"
179>user pointer</A
180>) I/O.</P
181><P
182>Specifically the capture hardware is disabled and no input
183buffers are filled (if there are any empty buffers in the incoming
184queue) until <CODE
185CLASS="CONSTANT"
186>VIDIOC_STREAMON</CODE
187> has been called.
188Accordingly the output hardware is disabled, no video signal is
189produced until <CODE
190CLASS="CONSTANT"
191>VIDIOC_STREAMON</CODE
192> has been called.
193The ioctl will succeed only when at least one output buffer is in the
194incoming queue.</P
195><P
196>The <CODE
197CLASS="CONSTANT"
198>VIDIOC_STREAMOFF</CODE
199> ioctl, apart of
200aborting or finishing any DMA in progress, unlocks any user pointer
201buffers locked in physical memory, and it removes all buffers from the
202incoming and outgoing queues. That means all images captured but not
203dequeued yet will be lost, likewise all images enqueued for output but
204not transmitted yet. I/O returns to the same state as after calling
205<A
206HREF="r13696.htm"
207><CODE
208CLASS="CONSTANT"
209>VIDIOC_REQBUFS</CODE
210></A
211> and can be restarted accordingly.</P
212><P
213>Both ioctls take a pointer to an integer, the desired buffer or
214stream type. This is the same as struct&nbsp;<A
215HREF="r13696.htm#V4L2-REQUESTBUFFERS"
216>v4l2_requestbuffers</A
217>
218<CODE
219CLASS="STRUCTFIELD"
220>type</CODE
221>.</P
222><P
223>Note applications can be preempted for unknown periods right
224before or after the <CODE
225CLASS="CONSTANT"
226>VIDIOC_STREAMON</CODE
227> or
228<CODE
229CLASS="CONSTANT"
230>VIDIOC_STREAMOFF</CODE
231> calls, there is no notion of
232starting or stopping "now". Buffer timestamps can be used to
233synchronize with other events.</P
234></DIV
235><DIV
236CLASS="REFSECT1"
237><A
238NAME="AEN13876"
239></A
240><H2
241>Return Value</H2
242><P
243>On success <SPAN
244CLASS="RETURNVALUE"
245>0</SPAN
246> is returned, on error <SPAN
247CLASS="RETURNVALUE"
248>-1</SPAN
249> and the <CODE
250CLASS="VARNAME"
251>errno</CODE
252> variable is set appropriately:</P
253><P
254></P
255><DIV
256CLASS="VARIABLELIST"
257><DL
258><DT
259><SPAN
260CLASS="ERRORCODE"
261>EINVAL</SPAN
262></DT
263><DD
264><P
265>Streaming I/O is not supported, the buffer
266<CODE
267CLASS="STRUCTFIELD"
268>type</CODE
269> is not supported, or no buffers have
270been allocated (memory mapping) or enqueued (output) yet.</P
271></DD
272></DL
273></DIV
274></DIV
275><DIV
276CLASS="NAVFOOTER"
277><HR
278ALIGN="LEFT"
279WIDTH="100%"><TABLE
280SUMMARY="Footer navigation table"
281WIDTH="100%"
282BORDER="0"
283CELLPADDING="0"
284CELLSPACING="0"
285><TR
286><TD
287WIDTH="33%"
288ALIGN="left"
289VALIGN="top"
290><A
291HREF="r13696.htm"
292ACCESSKEY="P"
293>Prev</A
294></TD
295><TD
296WIDTH="34%"
297ALIGN="center"
298VALIGN="top"
299><A
300HREF="book1.htm"
301ACCESSKEY="H"
302>Home</A
303></TD
304><TD
305WIDTH="33%"
306ALIGN="right"
307VALIGN="top"
308><A
309HREF="r13889.htm"
310ACCESSKEY="N"
311>Next</A
312></TD
313></TR
314><TR
315><TD
316WIDTH="33%"
317ALIGN="left"
318VALIGN="top"
319>ioctl VIDIOC_REQBUFS</TD
320><TD
321WIDTH="34%"
322ALIGN="center"
323VALIGN="top"
324><A
325HREF="r7624.htm"
326ACCESSKEY="U"
327>Up</A
328></TD
329><TD
330WIDTH="33%"
331ALIGN="right"
332VALIGN="top"
333>V4L2 mmap()</TD
334></TR
335></TABLE
336></DIV
337></BODY
338></HTML
339>
340