Lines Matching +full:multi +full:- +full:line
14 &VIDIOC-REQBUFS; ioctl. The asynchronous I/O method is not defined
19 selected by initiating video overlay with the &VIDIOC-S-FMT; ioctl.
44 the <structfield>capabilities</structfield> field of &v4l2-capability;
45 returned by the &VIDIOC-QUERYCAP; ioctl is set.</para>
50 pointers. It is considered inferior though because no meta-information
54 little or no setup to exchange data. It permits command line stunts
60 > vidctrl /dev/video --input=0 --format=YUYV --size=352x288
66 &func-read; function, to write the &func-write; function.
75 must also support the &func-select; and &func-poll;
88 <structfield>capabilities</structfield> field of &v4l2-capability;
89 returned by the &VIDIOC-QUERYCAP; ioctl is set. There are two
91 supported applications must call the &VIDIOC-REQBUFS; ioctl.</para>
98 add-on. However, being the most efficient I/O method available for a
100 buffers in DMA-able main memory.</para>
107 type field accordingly when calling &VIDIOC-QBUF; etc., but it makes
115 &VIDIOC-REQBUFS; ioctl with the desired number of buffers and buffer
122 them into their address space with the &func-mmap; function. The
124 &VIDIOC-QUERYBUF; ioctl. In the single-planar API case, the
126 returned in a &v4l2-buffer; are passed as sixth and second parameter to the
127 <function>mmap()</function> function. When using the multi-planar API,
128 struct &v4l2-buffer; contains an array of &v4l2-plane; structures, each
130 <structfield>length</structfield>. When using the multi-planar API, every
132 calls to &func-mmap; should be equal to number of buffers times number of
136 as soon as possible with the &func-munmap; function.</para>
139 <title>Mapping buffers in the single-planar API</title>
141 &v4l2-requestbuffers; reqbuf;
153 if (-1 == ioctl (fd, &VIDIOC-REQBUFS;, &reqbuf)) {
155 printf("Video capturing or mmap-streaming is not supported\n");
174 &v4l2-buffer; buffer;
181 if (-1 == ioctl (fd, &VIDIOC-QUERYBUF;, &buffer)) {
209 <title>Mapping buffers in the multi-planar API</title>
211 &v4l2-requestbuffers; reqbuf;
226 if (ioctl(fd, &VIDIOC-REQBUFS;, &reqbuf) < 0) {
228 printf("Video capturing or mmap-streaming is not supported\n");
247 &v4l2-buffer; buffer;
248 &v4l2-plane; planes[FMT_NUM_PLANES];
254 /* length in struct v4l2_buffer in multi-planar API stores the size
259 if (ioctl(fd, &VIDIOC-QUERYBUF;, &buffer) < 0) {
308 drivers to reuse buffers on a LIFO-basis, taking advantage of caches
309 holding scatter-gather lists and the like.</para>
310 </footnote> The index number of a buffer (&v4l2-buffer;
318 dequeued, and re-enqueues the buffer when the data is no longer
326 &VIDIOC-QBUF; and &VIDIOC-DQBUF; ioctl. The status of a buffer being
328 &VIDIOC-QUERYBUF; ioctl. Two methods exist to suspend execution of the
332 given to the &func-open; function, <constant>VIDIOC_DQBUF</constant>
334 &func-select; or &func-poll; function are always available.</para>
337 &VIDIOC-STREAMON; and &VIDIOC-STREAMOFF; ioctl. Note
341 with another event it should examine the &v4l2-buffer;
369 <structfield>capabilities</structfield> field of &v4l2-capability;
370 returned by the &VIDIOC-QUERYCAP; ioctl is set. If the particular user
372 determined by calling the &VIDIOC-REQBUFS; ioctl.</para>
377 pointers to data are exchanged, these pointers and meta-information
378 are passed in &v4l2-buffer; (or in &v4l2-plane; in the multi-planar API case).
380 &VIDIOC-REQBUFS; with the desired buffer type. No buffers (planes) are allocated
388 &v4l2-requestbuffers; reqbuf;
394 if (ioctl (fd, &VIDIOC-REQBUFS;, &reqbuf) == -1) {
406 &VIDIOC-QBUF; ioctl. Although buffers are commonly cycled,
416 scatter-gather lists may be time consuming. The delay can be masked by
428 &VIDIOC-DQBUF; ioctl. The driver can unlock the memory pages at any
430 also unlocked when &VIDIOC-STREAMOFF; is called, &VIDIOC-REQBUFS;, or
441 re-enqueues the buffer when the data is no longer needed. Output
449 given to the &func-open; function, <constant>VIDIOC_DQBUF</constant>
451 &func-select; or &func-poll; function are always available.</para>
454 &VIDIOC-STREAMON; and &VIDIOC-STREAMOFF; ioctl. Note
459 the &v4l2-buffer; <structfield>timestamp</structfield> of captured
485 driver using one of the Streaming I/O methods. In the multi-planar API, the
488 itself is not copied. These pointers, together with meta-information like
491 the &VIDIOC-QUERYBUF;, &VIDIOC-QBUF; and &VIDIOC-DQBUF; ioctl.
492 In the multi-planar API, some plane-specific members of struct
515 line sequence, possibly the vertical blanking, an interrupt routine
531 <table frame="none" pgwide="1" id="v4l2-buffer">
534 &cs-ustr;
543 with the &VIDIOC-REQBUFS; ioctl (&v4l2-requestbuffers; <structfield>count</structfield>) minus one.…
546 <entry>&v4l2-buf-type;</entry>
549 <entry>Type of the buffer, same as &v4l2-format;
550 <structfield>type</structfield> or &v4l2-requestbuffers;
568 linkend="buffer-flags" />.</entry>
571 <entry>&v4l2-field;</entry>
575 buffer, see <xref linkend="v4l2-field" />. This field is not used when
597 <entry>&v4l2-timecode;</entry>
604 timecode. In <link linkend="v4l2-field">V4L2_FIELD_ALTERNATE</link>
620 linkend="v4l2-field">V4L2_FIELD_ALTERNATE</link> mode the top and
633 <entry>&v4l2-memory;</entry>
647 <entry>For the single-planar API and when
650 returned by the driver and apart of serving as parameter to the &func-mmap;
658 <entry>For the single-planar API and when
668 <entry>When using the multi-planar API, contains a userspace pointer
669 to an array of &v4l2-plane;. The size of the array should be put
678 single-planar API. For the multi-planar API should contain the
690 number of a video input as in &v4l2-input; field
706 <table frame="none" pgwide="1" id="v4l2-plane">
709 &cs-ustr;
734 <entry>When the memory type in the containing &v4l2-buffer; is
736 should be passed to &func-mmap;, similar to the
737 <structfield>offset</structfield> field in &v4l2-buffer;.</entry>
743 <entry>When the memory type in the containing &v4l2-buffer; is
766 <table frame="none" pgwide="1" id="v4l2-buf-type">
769 &cs-def;
774 <entry>Buffer of a single-planar video capture stream, see <xref
781 <entry>Buffer of a multi-planar video capture stream, see <xref
787 <entry>Buffer of a single-planar video output stream, see <xref
794 <entry>Buffer of a multi-planar video output stream, see <xref
806 linkend="raw-vbi" />.</entry>
812 linkend="raw-vbi" />.</entry>
843 <table frame="none" pgwide="1" id="buffer-flags">
846 &cs-def;
854 <link linkend="vidioc-querybuf">VIDIOC_QUERYBUF</link>, <link
855 linkend="vidioc-qbuf">VIDIOC_QBUF</link> or <link
856 linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl is called. Set by the driver.</entry>
935 <link linkend="vidioc-querybuf">VIDIOC_QUERYBUF</link>, <link
936 linkend="vidioc-qbuf">VIDIOC_PREPARE_BUF</link>, <link
937 linkend="vidioc-qbuf">VIDIOC_QBUF</link> or <link
938 linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl is called.</entry>
946 passed on to a DMA-capable hardware unit for further processing or output.
954 in this buffer has not been created by the CPU but by some DMA-capable unit,
961 <table pgwide="1" frame="none" id="v4l2-memory">
964 &cs-def;
993 &v4l2-buffer; field <structfield>timestamp</structfield>.)</para>
995 <table frame="none" pgwide="1" id="v4l2-timecode">
998 &cs-str;
1004 linkend="timecode-type" />.</entry>
1009 <entry>Timecode flags, see <xref linkend="timecode-flags" />.</entry>
1041 <table frame="none" pgwide="1" id="timecode-type">
1044 &cs-def;
1075 <table frame="none" pgwide="1" id="timecode-flags">
1078 &cs-def;
1106 <entry>8-bit ISO characters.</entry>
1114 <section id="field-order">
1140 bottom (aka even) fields, the <emphasis>spatial order</emphasis>: The first line
1141 of the top field is the first line of an interlaced frame, the first
1142 line of the bottom field is the second line of that frame.</para>
1160 <structfield>field</structfield> field of &v4l2-pix-format; before
1161 calling the &VIDIOC-S-FMT; ioctl. If this is not desired it should
1164 <table frame="none" pgwide="1" id="v4l2-field">
1167 &cs-def;
1178 requested image size, and return the actual field order. &v4l2-buffer;
1206 <entry>Images contain both fields, interleaved line by
1207 line. The temporal order of the fields (whether the top or bottom
1234 or application, depending on data direction, must set &v4l2-buffer;
1240 the &v4l2-buffer; <structfield>sequence</structfield> field. Image
1242 when using the read/write I/O method.<!-- Where it's indistinguishable
1243 from V4L2_FIELD_SEQ_*. --></entry>
1248 <entry>Images contain both fields, interleaved line by
1249 line, top field first. The top field is transmitted first.</entry>
1254 <entry>Images contain both fields, interleaved line by
1255 line, top field first. The bottom field is transmitted first.</entry>
1261 <figure id="fieldseq-tb">
1273 <figure id="fieldseq-bt">