1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Part I. Video for Linux Two API Specification</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="LINUX MEDIA INFRASTRUCTURE API"><link rel="up" href="index.html" title="LINUX MEDIA INFRASTRUCTURE API"><link rel="prev" href="pr01.html" title="Introduction"><link rel="next" href="common.html" title="Chapter 1. Common API Elements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. Video for Linux Two API Specification</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pr01.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="common.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a name="v4l2spec"></a>Part I. Video for Linux Two API Specification</h1></div><div><h2 class="subtitle">Revision 3.19</h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Michael</span> <span class="othername">H</span> <span class="surname">Schimek</span></h3><div class="affiliation"><div class="address"><p><br> 2     <code class="email"><<a class="email" href="mailto:mschimek@gmx.at">mschimek@gmx.at</a>></code><br> 3   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Bill</span> <span class="surname">Dirks</span></h3><span class="contrib">Original author of the V4L2 API and 4documentation.</span> </div><div class="author"><h3 class="author"><span class="firstname">Hans</span> <span class="surname">Verkuil</span></h3><span class="contrib">Designed and documented the VIDIOC_LOG_STATUS ioctl, 5the extended control ioctls, major parts of the sliced VBI API, the 6MPEG encoder and decoder APIs and the DV Timings API.</span> <div class="affiliation"><div class="address"><p><br> 7     <code class="email"><<a class="email" href="mailto:hverkuil@xs4all.nl">hverkuil@xs4all.nl</a>></code><br> 8   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Martin</span> <span class="surname">Rubli</span></h3><span class="contrib">Designed and documented the VIDIOC_ENUM_FRAMESIZES 9and VIDIOC_ENUM_FRAMEINTERVALS ioctls.</span> </div><div class="author"><h3 class="author"><span class="firstname">Andy</span> <span class="surname">Walls</span></h3><span class="contrib">Documented the fielded V4L2_MPEG_STREAM_VBI_FMT_IVTV 10MPEG stream embedded, sliced VBI data format in this specification. 11</span> <div class="affiliation"><div class="address"><p><br> 12     <code class="email"><<a class="email" href="mailto:awalls@md.metrocast.net">awalls@md.metrocast.net</a>></code><br> 13   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Mauro</span> <span class="surname">Carvalho Chehab</span></h3><span class="contrib">Documented libv4l, designed and added v4l2grab example, 14Remote Controller chapter.</span> <div class="affiliation"><div class="address"><p><br> 15     <code class="email"><<a class="email" href="mailto:m.chehab@samsung.com">m.chehab@samsung.com</a>></code><br> 16   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Muralidharan</span> <span class="surname">Karicheri</span></h3><span class="contrib">Documented the Digital Video timings API.</span> <div class="affiliation"><div class="address"><p><br> 17     <code class="email"><<a class="email" href="mailto:m-karicheri2@ti.com">m-karicheri2@ti.com</a>></code><br> 18   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Pawel</span> <span class="surname">Osciak</span></h3><span class="contrib">Designed and documented the multi-planar API.</span> <div class="affiliation"><div class="address"><p><br> 19     <code class="email"><<a class="email" href="mailto:pawel%20AT%20osciak.com">pawel AT osciak.com</a>></code><br> 20   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Sakari</span> <span class="surname">Ailus</span></h3><span class="contrib">Subdev selections API.</span> <div class="affiliation"><div class="address"><p><br> 21     <code class="email"><<a class="email" href="mailto:sakari.ailus@iki.fi">sakari.ailus@iki.fi</a>></code><br> 22   </p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Antti</span> <span class="surname">Palosaari</span></h3><span class="contrib">SDR API.</span> <div class="affiliation"><div class="address"><p><br> 23     <code class="email"><<a class="email" href="mailto:crope@iki.fi">crope@iki.fi</a>></code><br> 24   </p></div></div></div></div></div><div><p class="copyright">Copyright © 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin 25Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab, 26 Pawel Osciak</p></div><div><div class="legalnotice"><a name="idp1093909548"></a><p>Except when explicitly stated as GPL, programming examples within 27 this part can be used and distributed without restrictions.</p></div></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 3.21</td><td align="left">2015-02-13</td><td align="left">mcc</td></tr><tr><td align="left" colspan="3">Fix documentation for media controller device nodes and add support for DVB device nodes. 28Add support for Tuner sub-device. 29 </td></tr><tr><td align="left">Revision 3.19</td><td align="left">2014-12-05</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Rewrote Colorspace chapter, added new enum <a class="link" href="ch02s05.html#v4l2-ycbcr-encoding" title="Table 2.5. V4L2 Y'CbCr Encodings">v4l2_ycbcr_encoding</a> and enum <a class="link" href="ch02s05.html#v4l2-quantization" title="Table 2.6. V4L2 Quantization Methods">v4l2_quantization</a> fields 30to struct <a class="link" href="pixfmt.html#v4l2-pix-format" title="Table 2.1. struct v4l2_pix_format">v4l2_pix_format</a>, struct <a class="link" href="ch02s02.html#v4l2-pix-format-mplane" title="Table 2.3. struct v4l2_pix_format_mplane">v4l2_pix_format_mplane</a> and struct <a class="link" href="subdev.html#v4l2-mbus-framefmt" title="Table 4.20. struct v4l2_mbus_framefmt">v4l2_mbus_framefmt</a>. 31 </td></tr><tr><td align="left">Revision 3.17</td><td align="left">2014-08-04</td><td align="left">lp, hv</td></tr><tr><td align="left" colspan="3">Extended struct <a class="link" href="pixfmt.html#v4l2-pix-format" title="Table 2.1. struct v4l2_pix_format">v4l2_pix_format</a>. Added format flags. Added compound control types 32and VIDIOC_QUERY_EXT_CTRL. 33 </td></tr><tr><td align="left">Revision 3.15</td><td align="left">2014-02-03</td><td align="left">hv, ap</td></tr><tr><td align="left" colspan="3">Update several sections of "Common API Elements": "Opening and Closing Devices" 34"Querying Capabilities", "Application Priority", "Video Inputs and Outputs", "Audio Inputs and Outputs" 35"Tuners and Modulators", "Video Standards" and "Digital Video (DV) Timings". Added SDR API. 36 </td></tr><tr><td align="left">Revision 3.14</td><td align="left">2013-11-25</td><td align="left">rr</td></tr><tr><td align="left" colspan="3">Set width and height as unsigned on v4l2_rect. 37 </td></tr><tr><td align="left">Revision 3.11</td><td align="left">2013-05-26</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Remove obsolete VIDIOC_DBG_G_CHIP_IDENT ioctl. 38 </td></tr><tr><td align="left">Revision 3.10</td><td align="left">2013-03-25</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Remove obsolete and unused DV_PRESET ioctls: 39 VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and 40 VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output capability 41 flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS. Added VIDIOC_DBG_G_CHIP_INFO. 42 </td></tr><tr><td align="left">Revision 3.9</td><td align="left">2012-12-03</td><td align="left">sa, sn</td></tr><tr><td align="left" colspan="3">Added timestamp types to v4l2_buffer. 43 Added V4L2_EVENT_CTRL_CH_RANGE control event changes flag. 44 </td></tr><tr><td align="left">Revision 3.6</td><td align="left">2012-07-02</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Added VIDIOC_ENUM_FREQ_BANDS. 45 </td></tr><tr><td align="left">Revision 3.5</td><td align="left">2012-05-07</td><td align="left">sa, sn, hv</td></tr><tr><td align="left" colspan="3">Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev 46 selections API. Improved the description of V4L2_CID_COLORFX 47 control, added V4L2_CID_COLORFX_CBCR control. 48 Added camera controls V4L2_CID_AUTO_EXPOSURE_BIAS, 49 V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE, V4L2_CID_IMAGE_STABILIZATION, 50 V4L2_CID_ISO_SENSITIVITY, V4L2_CID_ISO_SENSITIVITY_AUTO, 51 V4L2_CID_EXPOSURE_METERING, V4L2_CID_SCENE_MODE, 52 V4L2_CID_3A_LOCK, V4L2_CID_AUTO_FOCUS_START, 53 V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS 54 and V4L2_CID_AUTO_FOCUS_RANGE. 55 Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and 56 VIDIOC_DV_TIMINGS_CAP. 57 </td></tr><tr><td align="left">Revision 3.4</td><td align="left">2012-01-25</td><td align="left">sn</td></tr><tr><td align="left" colspan="3">Added <a class="link" href="extended-controls.html#jpeg-controls" title="JPEG Control Reference">JPEG compression 58 control class.</a> 59 </td></tr><tr><td align="left">Revision 3.3</td><td align="left">2012-01-11</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Added device_caps field to struct v4l2_capabilities.</td></tr><tr><td align="left">Revision 3.2</td><td align="left">2011-08-26</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Added V4L2_CTRL_FLAG_VOLATILE.</td></tr><tr><td align="left">Revision 3.1</td><td align="left">2011-06-27</td><td align="left">mcc, po, hv</td></tr><tr><td align="left" colspan="3">Documented that VIDIOC_QUERYCAP now returns a per-subsystem version instead of a per-driver one. 60 Standardize an error code for invalid ioctl. 61 Added V4L2_CTRL_TYPE_BITMASK.</td></tr><tr><td align="left">Revision 2.6.39</td><td align="left">2011-03-01</td><td align="left">mcc, po</td></tr><tr><td align="left" colspan="3">Removed VIDIOC_*_OLD from videodev2.h header and update it to reflect latest changes. Added the <a class="link" href="planar-apis.html" title="Single- and multi-planar APIs">multi-planar API</a>.</td></tr><tr><td align="left">Revision 2.6.37</td><td align="left">2010-08-06</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Removed obsolete vtx (videotext) API.</td></tr><tr><td align="left">Revision 2.6.33</td><td align="left">2009-12-03</td><td align="left">mk</td></tr><tr><td align="left" colspan="3">Added documentation for the Digital Video timings API.</td></tr><tr><td align="left">Revision 2.6.32</td><td align="left">2009-08-31</td><td align="left">mcc</td></tr><tr><td align="left" colspan="3">Now, revisions will match the kernel version where 62the V4L2 API changes will be used by the Linux Kernel. 63Also added Remote Controller chapter.</td></tr><tr><td align="left">Revision 0.29</td><td align="left">2009-08-26</td><td align="left">ev</td></tr><tr><td align="left" colspan="3">Added documentation for string controls and for FM Transmitter controls.</td></tr><tr><td align="left">Revision 0.28</td><td align="left">2009-08-26</td><td align="left">gl</td></tr><tr><td align="left" colspan="3">Added V4L2_CID_BAND_STOP_FILTER documentation.</td></tr><tr><td align="left">Revision 0.27</td><td align="left">2009-08-15</td><td align="left">mcc</td></tr><tr><td align="left" colspan="3">Added libv4l and Remote Controller documentation; 64added v4l2grab and keytable application examples.</td></tr><tr><td align="left">Revision 0.26</td><td align="left">2009-07-23</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Finalized the RDS capture API. Added modulator and RDS encoder 65capabilities. Added support for string controls.</td></tr><tr><td align="left">Revision 0.25</td><td align="left">2009-01-18</td><td align="left">hv</td></tr><tr><td align="left" colspan="3">Added pixel formats VYUY, NV16 and NV61, and changed 66the debug ioctls VIDIOC_DBG_G/S_REGISTER and VIDIOC_DBG_G_CHIP_IDENT. 67Added camera controls V4L2_CID_ZOOM_ABSOLUTE, V4L2_CID_ZOOM_RELATIVE, 68V4L2_CID_ZOOM_CONTINUOUS and V4L2_CID_PRIVACY.</td></tr><tr><td align="left">Revision 0.24</td><td align="left">2008-03-04</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Added pixel formats Y16 and SBGGR16, new controls 69and a camera controls class. Removed VIDIOC_G/S_MPEGCOMP.</td></tr><tr><td align="left">Revision 0.23</td><td align="left">2007-08-30</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Fixed a typo in VIDIOC_DBG_G/S_REGISTER. 70Clarified the byte order of packed pixel formats.</td></tr><tr><td align="left">Revision 0.22</td><td align="left">2007-08-29</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Added the Video Output Overlay interface, new MPEG 71controls, V4L2_FIELD_INTERLACED_TB and V4L2_FIELD_INTERLACED_BT, 72VIDIOC_DBG_G/S_REGISTER, VIDIOC_(TRY_)ENCODER_CMD, 73VIDIOC_G_CHIP_IDENT, VIDIOC_G_ENC_INDEX, new pixel formats. 74Clarifications in the cropping chapter, about RGB pixel formats, the 75mmap(), poll(), select(), read() and write() functions. Typographical 76fixes.</td></tr><tr><td align="left">Revision 0.21</td><td align="left">2006-12-19</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Fixed a link in the VIDIOC_G_EXT_CTRLS section.</td></tr><tr><td align="left">Revision 0.20</td><td align="left">2006-11-24</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Clarified the purpose of the audioset field in 77struct v4l2_input and v4l2_output.</td></tr><tr><td align="left">Revision 0.19</td><td align="left">2006-10-19</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Documented V4L2_PIX_FMT_RGB444.</td></tr><tr><td align="left">Revision 0.18</td><td align="left">2006-10-18</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Added the description of extended controls by Hans 78Verkuil. Linked V4L2_PIX_FMT_MPEG to V4L2_CID_MPEG_STREAM_TYPE.</td></tr><tr><td align="left">Revision 0.17</td><td align="left">2006-10-12</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Corrected V4L2_PIX_FMT_HM12 description.</td></tr><tr><td align="left">Revision 0.16</td><td align="left">2006-10-08</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">VIDIOC_ENUM_FRAMESIZES and 79VIDIOC_ENUM_FRAMEINTERVALS are now part of the API.</td></tr><tr><td align="left">Revision 0.15</td><td align="left">2006-09-23</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Cleaned up the bibliography, added BT.653 and 80BT.1119. capture.c/start_capturing() for user pointer I/O did not 81initialize the buffer index. Documented the V4L MPEG and MJPEG 82VID_TYPEs and V4L2_PIX_FMT_SBGGR8. Updated the list of reserved pixel 83formats. See the history chapter for API changes.</td></tr><tr><td align="left">Revision 0.14</td><td align="left">2006-09-14</td><td align="left">mr</td></tr><tr><td align="left" colspan="3">Added VIDIOC_ENUM_FRAMESIZES and 84VIDIOC_ENUM_FRAMEINTERVALS proposal for frame format enumeration of 85digital devices.</td></tr><tr><td align="left">Revision 0.13</td><td align="left">2006-04-07</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Corrected the description of struct v4l2_window 86clips. New V4L2_STD_ and V4L2_TUNER_MODE_LANG1_LANG2 87defines.</td></tr><tr><td align="left">Revision 0.12</td><td align="left">2006-02-03</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Corrected the description of struct 88v4l2_captureparm and v4l2_outputparm.</td></tr><tr><td align="left">Revision 0.11</td><td align="left">2006-01-27</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Improved the description of struct 89v4l2_tuner.</td></tr><tr><td align="left">Revision 0.10</td><td align="left">2006-01-10</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">VIDIOC_G_INPUT and VIDIOC_S_PARM 90clarifications.</td></tr><tr><td align="left">Revision 0.9</td><td align="left">2005-11-27</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Improved the 525 line numbering diagram. Hans 91Verkuil and I rewrote the sliced VBI section. He also contributed a 92VIDIOC_LOG_STATUS page. Fixed VIDIOC_S_STD call in the video standard 93selection example. Various updates.</td></tr><tr><td align="left">Revision 0.8</td><td align="left">2004-10-04</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Somehow a piece of junk slipped into the capture 94example, removed.</td></tr><tr><td align="left">Revision 0.7</td><td align="left">2004-09-19</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Fixed video standard selection, control 95enumeration, downscaling and aspect example. Added read and user 96pointer i/o to video capture example.</td></tr><tr><td align="left">Revision 0.6</td><td align="left">2004-08-01</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">v4l2_buffer changes, added video capture example, 97various corrections.</td></tr><tr><td align="left">Revision 0.5</td><td align="left">2003-11-05</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Pixel format erratum.</td></tr><tr><td align="left">Revision 0.4</td><td align="left">2003-09-17</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Corrected source and Makefile to generate a PDF. 98SGML fixes. Added latest API changes. Closed gaps in the history 99chapter.</td></tr><tr><td align="left">Revision 0.3</td><td align="left">2003-02-05</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Another draft, more corrections.</td></tr><tr><td align="left">Revision 0.2</td><td align="left">2003-01-15</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">Second draft, with corrections pointed out by Gerd 100Knorr.</td></tr><tr><td align="left">Revision 0.1</td><td align="left">2002-12-01</td><td align="left">mhs</td></tr><tr><td align="left" colspan="3">First draft, based on documentation by Bill Dirks 101and discussions on the V4L mailing list.</td></tr></table></div></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="common.html">1. Common API Elements</a></span></dt><dd><dl><dt><span class="section"><a href="common.html#open">Opening and Closing Devices</a></span></dt><dd><dl><dt><span class="section"><a href="common.html#idp1096767692">Device Naming</a></span></dt><dt><span class="section"><a href="common.html#related">Related Devices</a></span></dt><dt><span class="section"><a href="common.html#idp1096777404">Multiple Opens</a></span></dt><dt><span class="section"><a href="common.html#idp1096789052">Shared Data Streams</a></span></dt><dt><span class="section"><a href="common.html#idp1096789860">Functions</a></span></dt></dl></dd><dt><span class="section"><a href="querycap.html">Querying Capabilities</a></span></dt><dt><span class="section"><a href="app-pri.html">Application Priority</a></span></dt><dt><span class="section"><a href="video.html">Video Inputs and Outputs</a></span></dt><dt><span class="section"><a href="audio.html">Audio Inputs and Outputs</a></span></dt><dt><span class="section"><a href="tuner.html">Tuners and Modulators</a></span></dt><dd><dl><dt><span class="section"><a href="tuner.html#idp1096834708">Tuners</a></span></dt><dt><span class="section"><a href="tuner.html#idp1096841868">Modulators</a></span></dt><dt><span class="section"><a href="tuner.html#idp1096849292">Radio Frequency</a></span></dt></dl></dd><dt><span class="section"><a href="standard.html">Video Standards</a></span></dt><dt><span class="section"><a href="dv-timings.html">Digital Video (DV) Timings</a></span></dt><dt><span class="section"><a href="control.html">User Controls</a></span></dt><dt><span class="section"><a href="extended-controls.html">Extended Controls</a></span></dt><dd><dl><dt><span class="section"><a href="extended-controls.html#idp1097023452">Introduction</a></span></dt><dt><span class="section"><a href="extended-controls.html#idp1097025916">The Extended Control API</a></span></dt><dt><span class="section"><a href="extended-controls.html#idp1097037444">Enumerating Extended Controls</a></span></dt><dt><span class="section"><a href="extended-controls.html#idp1096896148">Creating Control Panels</a></span></dt><dt><span class="section"><a href="extended-controls.html#mpeg-controls">Codec Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#camera-controls">Camera Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#fm-tx-controls">FM Transmitter Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#flash-controls">Flash Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#jpeg-controls">JPEG Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#image-source-controls">Image Source Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#image-process-controls">Image Process Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#dv-controls">Digital Video Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#fm-rx-controls">FM Receiver Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#detect-controls">Detect Control Reference</a></span></dt><dt><span class="section"><a href="extended-controls.html#rf-tuner-controls">RF Tuner Control Reference</a></span></dt></dl></dd><dt><span class="section"><a href="format.html">Data Formats</a></span></dt><dd><dl><dt><span class="section"><a href="format.html#idp1098923212">Data Format Negotiation</a></span></dt><dt><span class="section"><a href="format.html#idp1098942900">Image Format Enumeration</a></span></dt></dl></dd><dt><span class="section"><a href="planar-apis.html">Single- and multi-planar APIs</a></span></dt><dd><dl><dt><span class="section"><a href="planar-apis.html#idp1098952028">Multi-planar formats</a></span></dt><dt><span class="section"><a href="planar-apis.html#idp1098952868">Calls that distinguish between single and multi-planar APIs</a></span></dt></dl></dd><dt><span class="section"><a href="crop.html">Image Cropping, Insertion and Scaling</a></span></dt><dd><dl><dt><span class="section"><a href="crop.html#idp1098969740">Cropping Structures</a></span></dt><dt><span class="section"><a href="crop.html#idp1098993076">Scaling Adjustments</a></span></dt><dt><span class="section"><a href="crop.html#idp1098980540">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="selection-api.html">Experimental API for cropping, composing and scaling</a></span></dt><dd><dl><dt><span class="section"><a href="selection-api.html#idp1099015196">Introduction</a></span></dt><dt><span class="section"><a href="selection-api.html#idp1099060620">Selection targets</a></span></dt><dt><span class="section"><a href="selection-api.html#idp1099063868">Configuration</a></span></dt><dt><span class="section"><a href="selection-api.html#idp1099082516">Comparison with old cropping API</a></span></dt><dt><span class="section"><a href="selection-api.html#idp1099087124">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="streaming-par.html">Streaming Parameters</a></span></dt></dl></dd><dt><span class="chapter"><a href="pixfmt.html">2. Image Formats</a></span></dt><dd><dl><dt><span class="section"><a href="pixfmt.html#idp1100345860">Single-planar format structure</a></span></dt><dt><span class="section"><a href="ch02s02.html">Multi-planar format structures</a></span></dt><dt><span class="section"><a href="ch02s03.html">Standard Image Formats</a></span></dt><dt><span class="section"><a href="colorspaces.html">Colorspaces</a></span></dt><dt><span class="section"><a href="ch02s05.html">Defining Colorspaces in V4L2</a></span></dt><dt><span class="section"><a href="ch02s06.html">Detailed Colorspace Descriptions</a></span></dt><dd><dl><dt><span class="section"><a href="ch02s06.html#col-smpte-170m">Colorspace SMPTE 170M (<code class="constant">V4L2_COLORSPACE_SMPTE170M</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-rec709">Colorspace Rec. 709 (<code class="constant">V4L2_COLORSPACE_REC709</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-srgb">Colorspace sRGB (<code class="constant">V4L2_COLORSPACE_SRGB</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-adobergb">Colorspace Adobe RGB (<code class="constant">V4L2_COLORSPACE_ADOBERGB</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-bt2020">Colorspace BT.2020 (<code class="constant">V4L2_COLORSPACE_BT2020</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-smpte-240m">Colorspace SMPTE 240M (<code class="constant">V4L2_COLORSPACE_SMPTE240M</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-sysm">Colorspace NTSC 1953 (<code class="constant">V4L2_COLORSPACE_470_SYSTEM_M</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-sysbg">Colorspace EBU Tech. 3213 (<code class="constant">V4L2_COLORSPACE_470_SYSTEM_BG</code>)</a></span></dt><dt><span class="section"><a href="ch02s06.html#col-jpeg">Colorspace JPEG (<code class="constant">V4L2_COLORSPACE_JPEG</code>)</a></span></dt></dl></dd><dt><span class="section"><a href="pixfmt-indexed.html">Indexed Format</a></span></dt><dt><span class="section"><a href="pixfmt-rgb.html">RGB Formats</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="packed-rgb.html">Packed RGB formats</a></span><span class="refpurpose"> — Packed RGB formats</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-SBGGR8.html">V4L2_PIX_FMT_SBGGR8 ('BA81')</a></span><span class="refpurpose"> — Bayer RGB format</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-SGBRG8.html">V4L2_PIX_FMT_SGBRG8 ('GBRG')</a></span><span class="refpurpose"> — Bayer RGB format</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-SGRBG8.html">V4L2_PIX_FMT_SGRBG8 ('GRBG')</a></span><span class="refpurpose"> — Bayer RGB format</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-SRGGB8.html">V4L2_PIX_FMT_SRGGB8 ('RGGB')</a></span><span class="refpurpose"> — Bayer RGB format</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-SBGGR16.html">V4L2_PIX_FMT_SBGGR16 ('BYR2')</a></span><span class="refpurpose"> — Bayer RGB format</span></dt><dt><span class="refentrytitle"><a href="pixfmt-srggb10.html">V4L2_PIX_FMT_SRGGB10 ('RG10'), 102 V4L2_PIX_FMT_SGRBG10 ('BA10'), 103 V4L2_PIX_FMT_SGBRG10 ('GB10'), 104 V4L2_PIX_FMT_SBGGR10 ('BG10'), 105 </a></span><span class="refpurpose"> — 10-bit Bayer formats expanded to 16 bits</span></dt><dt><span class="refentrytitle"><a href="pixfmt-srggb10p.html">V4L2_PIX_FMT_SRGGB10P ('pRAA'), 106 V4L2_PIX_FMT_SGRBG10P ('pgAA'), 107 V4L2_PIX_FMT_SGBRG10P ('pGAA'), 108 V4L2_PIX_FMT_SBGGR10P ('pBAA'), 109 </a></span><span class="refpurpose"> — 10-bit packed Bayer formats</span></dt><dt><span class="refentrytitle"><a href="re09.html"> 110 V4L2_PIX_FMT_SBGGR10ALAW8 ('aBA8'), 111 V4L2_PIX_FMT_SGBRG10ALAW8 ('aGA8'), 112 V4L2_PIX_FMT_SGRBG10ALAW8 ('agA8'), 113 V4L2_PIX_FMT_SRGGB10ALAW8 ('aRA8'), 114 </a></span><span class="refpurpose"> — 10-bit Bayer formats compressed to 8 bits</span></dt><dt><span class="refentrytitle"><a href="pixfmt-srggb10dpcm8.html"> 115 V4L2_PIX_FMT_SBGGR10DPCM8 ('bBA8'), 116 V4L2_PIX_FMT_SGBRG10DPCM8 ('bGA8'), 117 V4L2_PIX_FMT_SGRBG10DPCM8 ('BD10'), 118 V4L2_PIX_FMT_SRGGB10DPCM8 ('bRA8'), 119 </a></span><span class="refpurpose"> — 10-bit Bayer formats compressed to 8 bits</span></dt><dt><span class="refentrytitle"><a href="re11.html">V4L2_PIX_FMT_SRGGB12 ('RG12'), 120 V4L2_PIX_FMT_SGRBG12 ('BA12'), 121 V4L2_PIX_FMT_SGBRG12 ('GB12'), 122 V4L2_PIX_FMT_SBGGR12 ('BG12'), 123 </a></span><span class="refpurpose"> — 12-bit Bayer formats expanded to 16 bits</span></dt></dl></dd><dt><span class="section"><a href="yuv-formats.html">YUV Formats</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="packed-yuv.html">Packed YUV formats</a></span><span class="refpurpose"> — Packed YUV formats</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-GREY.html">V4L2_PIX_FMT_GREY ('GREY')</a></span><span class="refpurpose"> — Grey-scale image</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-Y10.html">V4L2_PIX_FMT_Y10 ('Y10 ')</a></span><span class="refpurpose"> — Grey-scale image</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-Y12.html">V4L2_PIX_FMT_Y12 ('Y12 ')</a></span><span class="refpurpose"> — Grey-scale image</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-Y10BPACK.html">V4L2_PIX_FMT_Y10BPACK ('Y10B')</a></span><span class="refpurpose"> — Grey-scale image as a bit-packed array</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-Y16.html">V4L2_PIX_FMT_Y16 ('Y16 ')</a></span><span class="refpurpose"> — Grey-scale image</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-UV8.html">V4L2_PIX_FMT_UV8 ('UV8')</a></span><span class="refpurpose"> — UV plane interleaved</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YUYV.html">V4L2_PIX_FMT_YUYV ('YUYV')</a></span><span class="refpurpose"> — Packed format with ½ horizontal chroma 124resolution, also known as YUV 4:2:2</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-UYVY.html">V4L2_PIX_FMT_UYVY ('UYVY')</a></span><span class="refpurpose"> — Variation of 125<code class="constant">V4L2_PIX_FMT_YUYV</code> with different order of samples 126in memory</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YVYU.html">V4L2_PIX_FMT_YVYU ('YVYU')</a></span><span class="refpurpose"> — Variation of 127<code class="constant">V4L2_PIX_FMT_YUYV</code> with different order of samples 128in memory</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-VYUY.html">V4L2_PIX_FMT_VYUY ('VYUY')</a></span><span class="refpurpose"> — Variation of 129<code class="constant">V4L2_PIX_FMT_YUYV</code> with different order of samples 130in memory</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-Y41P.html">V4L2_PIX_FMT_Y41P ('Y41P')</a></span><span class="refpurpose"> — Format with ¼ horizontal chroma 131resolution, also known as YUV 4:1:1</span></dt><dt><span class="refentrytitle"><a href="re24.html">V4L2_PIX_FMT_YVU420 ('YV12'), V4L2_PIX_FMT_YUV420 ('YU12')</a></span><span class="refpurpose"> — Planar formats with ½ horizontal and 132vertical chroma resolution, also known as YUV 4:2:0</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YUV420M.html">V4L2_PIX_FMT_YUV420M ('YM12')</a></span><span class="refpurpose"> — Variation of <code class="constant">V4L2_PIX_FMT_YUV420</code> 133 with planes non contiguous in memory. </span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YVU420M.html">V4L2_PIX_FMT_YVU420M ('YM21')</a></span><span class="refpurpose"> — Variation of <code class="constant">V4L2_PIX_FMT_YVU420</code> 134 with planes non contiguous in memory. </span></dt><dt><span class="refentrytitle"><a href="re27.html">V4L2_PIX_FMT_YVU410 ('YVU9'), V4L2_PIX_FMT_YUV410 ('YUV9')</a></span><span class="refpurpose"> — Planar formats with ¼ horizontal and 135vertical chroma resolution, also known as YUV 4:1:0</span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YUV422P.html">V4L2_PIX_FMT_YUV422P ('422P')</a></span><span class="refpurpose"> — Format with ½ horizontal chroma resolution, 136also known as YUV 4:2:2. Planar layout as opposed to 137<code class="constant">V4L2_PIX_FMT_YUYV</code></span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-YUV411P.html">V4L2_PIX_FMT_YUV411P ('411P')</a></span><span class="refpurpose"> — Format with ¼ horizontal chroma resolution, 138also known as YUV 4:1:1. Planar layout as opposed to 139<code class="constant">V4L2_PIX_FMT_Y41P</code></span></dt><dt><span class="refentrytitle"><a href="re30.html">V4L2_PIX_FMT_NV12 ('NV12'), V4L2_PIX_FMT_NV21 ('NV21')</a></span><span class="refpurpose"> — Formats with ½ horizontal and vertical 140chroma resolution, also known as YUV 4:2:0. One luminance and one 141chrominance plane with alternating chroma samples as opposed to 142<code class="constant">V4L2_PIX_FMT_YVU420</code></span></dt><dt><span class="refentrytitle"><a href="re31.html">V4L2_PIX_FMT_NV12M ('NM12'), V4L2_PIX_FMT_NV21M ('NM21'), V4L2_PIX_FMT_NV12MT_16X16</a></span><span class="refpurpose"> — Variation of <code class="constant">V4L2_PIX_FMT_NV12</code> and <code class="constant">V4L2_PIX_FMT_NV21</code> with planes 143 non contiguous in memory. </span></dt><dt><span class="refentrytitle"><a href="re32.html">V4L2_PIX_FMT_NV12MT ('TM12')</a></span><span class="refpurpose"> — Formats with ½ horizontal and vertical 144chroma resolution. This format has two planes - one for luminance and one for 145chrominance. Chroma samples are interleaved. The difference to 146<code class="constant">V4L2_PIX_FMT_NV12</code> is the memory layout. Pixels are 147grouped in macroblocks of 64x32 size. The order of macroblocks in memory is 148also not standard. 149 </span></dt><dt><span class="refentrytitle"><a href="re33.html">V4L2_PIX_FMT_NV16 ('NV16'), V4L2_PIX_FMT_NV61 ('NV61')</a></span><span class="refpurpose"> — Formats with ½ horizontal 150chroma resolution, also known as YUV 4:2:2. One luminance and one 151chrominance plane with alternating chroma samples as opposed to 152<code class="constant">V4L2_PIX_FMT_YVU420</code></span></dt><dt><span class="refentrytitle"><a href="re34.html">V4L2_PIX_FMT_NV16M ('NM16'), V4L2_PIX_FMT_NV61M ('NM61')</a></span><span class="refpurpose"> — Variation of <code class="constant">V4L2_PIX_FMT_NV16</code> and <code class="constant">V4L2_PIX_FMT_NV61</code> with planes 153 non contiguous in memory. </span></dt><dt><span class="refentrytitle"><a href="re35.html">V4L2_PIX_FMT_NV24 ('NV24'), V4L2_PIX_FMT_NV42 ('NV42')</a></span><span class="refpurpose"> — Formats with full horizontal and vertical 154chroma resolutions, also known as YUV 4:4:4. One luminance and one 155chrominance plane with alternating chroma samples as opposed to 156<code class="constant">V4L2_PIX_FMT_YVU420</code></span></dt><dt><span class="refentrytitle"><a href="V4L2-PIX-FMT-M420.html">V4L2_PIX_FMT_M420 ('M420')</a></span><span class="refpurpose"> — Format with ½ horizontal and vertical chroma 157 resolution, also known as YUV 4:2:0. Hybrid plane line-interleaved 158 layout.</span></dt></dl></dd><dt><span class="section"><a href="ch02s10.html">Compressed Formats</a></span></dt><dt><span class="section"><a href="sdr-formats.html">SDR Formats</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="V4L2-SDR-FMT-CU08.html">V4L2_SDR_FMT_CU8 ('CU08')</a></span><span class="refpurpose"> — Complex unsigned 8-bit IQ sample</span></dt><dt><span class="refentrytitle"><a href="V4L2-SDR-FMT-CU16LE.html">V4L2_SDR_FMT_CU16LE ('CU16')</a></span><span class="refpurpose"> — Complex unsigned 16-bit little endian IQ sample</span></dt><dt><span class="refentrytitle"><a href="V4L2-SDR-FMT-CS08.html">V4L2_SDR_FMT_CS8 ('CS08')</a></span><span class="refpurpose"> — Complex signed 8-bit IQ sample</span></dt><dt><span class="refentrytitle"><a href="V4L2-SDR-FMT-CS14LE.html">V4L2_SDR_FMT_CS14LE ('CS14')</a></span><span class="refpurpose"> — Complex signed 14-bit little endian IQ sample</span></dt><dt><span class="refentrytitle"><a href="V4L2-SDR-FMT-RU12LE.html">V4L2_SDR_FMT_RU12LE ('RU12')</a></span><span class="refpurpose"> — Real unsigned 12-bit little endian sample</span></dt></dl></dd><dt><span class="section"><a href="pixfmt-reserved.html">Reserved Format Identifiers</a></span></dt></dl></dd><dt><span class="chapter"><a href="io.html">3. Input/Output</a></span></dt><dd><dl><dt><span class="section"><a href="io.html#rw">Read/Write</a></span></dt><dt><span class="section"><a href="mmap.html">Streaming I/O (Memory Mapping)</a></span></dt><dt><span class="section"><a href="userp.html">Streaming I/O (User Pointers)</a></span></dt><dt><span class="section"><a href="dmabuf.html">Streaming I/O (DMA buffer importing)</a></span></dt><dt><span class="section"><a href="async.html">Asynchronous I/O</a></span></dt><dt><span class="section"><a href="buffer.html">Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="buffer.html#idp1104802220">Timecodes</a></span></dt></dl></dd><dt><span class="section"><a href="field-order.html">Field Order</a></span></dt></dl></dd><dt><span class="chapter"><a href="devices.html">4. Interfaces</a></span></dt><dd><dl><dt><span class="section"><a href="devices.html#capture">Video Capture Interface</a></span></dt><dd><dl><dt><span class="section"><a href="devices.html#idp1105105692">Querying Capabilities</a></span></dt><dt><span class="section"><a href="devices.html#idp1105151884">Supplemental Functions</a></span></dt><dt><span class="section"><a href="devices.html#idp1105155740">Image Format Negotiation</a></span></dt><dt><span class="section"><a href="devices.html#idp1105168876">Reading Images</a></span></dt></dl></dd><dt><span class="section"><a href="overlay.html">Video Overlay Interface</a></span></dt><dd><dl><dt><span class="section"><a href="overlay.html#idp1105202876">Querying Capabilities</a></span></dt><dt><span class="section"><a href="overlay.html#idp1105204956">Supplemental Functions</a></span></dt><dt><span class="section"><a href="overlay.html#idp1105208572">Setup</a></span></dt><dt><span class="section"><a href="overlay.html#idp1105217724">Overlay Window</a></span></dt><dt><span class="section"><a href="overlay.html#idp1105269452">Enabling Overlay</a></span></dt></dl></dd><dt><span class="section"><a href="output.html">Video Output Interface</a></span></dt><dd><dl><dt><span class="section"><a href="output.html#idp1105304604">Querying Capabilities</a></span></dt><dt><span class="section"><a href="output.html#idp1105350052">Supplemental Functions</a></span></dt><dt><span class="section"><a href="output.html#idp1105353692">Image Format Negotiation</a></span></dt><dt><span class="section"><a href="output.html#idp1105366780">Writing Images</a></span></dt></dl></dd><dt><span class="section"><a href="osd.html">Video Output Overlay Interface</a></span></dt><dd><dl><dt><span class="section"><a href="osd.html#idp1105326132">Querying Capabilities</a></span></dt><dt><span class="section"><a href="osd.html#idp1105338860">Framebuffer</a></span></dt><dt><span class="section"><a href="osd.html#idp1105406836">Overlay Window and Scaling</a></span></dt><dt><span class="section"><a href="osd.html#idp1105416860">Enabling Overlay</a></span></dt></dl></dd><dt><span class="section"><a href="codec.html">Codec Interface</a></span></dt><dt><span class="section"><a href="effect.html">Effect Devices Interface</a></span></dt><dt><span class="section"><a href="raw-vbi.html">Raw VBI Data Interface</a></span></dt><dd><dl><dt><span class="section"><a href="raw-vbi.html#idp1105460852">Querying Capabilities</a></span></dt><dt><span class="section"><a href="raw-vbi.html#idp1105463228">Supplemental Functions</a></span></dt><dt><span class="section"><a href="raw-vbi.html#idp1105465628">Raw VBI Format Negotiation</a></span></dt><dt><span class="section"><a href="raw-vbi.html#idp1105522708">Reading and writing VBI images</a></span></dt></dl></dd><dt><span class="section"><a href="sliced.html">Sliced VBI Data Interface</a></span></dt><dd><dl><dt><span class="section"><a href="sliced.html#idp1105589692">Querying Capabilities</a></span></dt><dt><span class="section"><a href="sliced.html#idp1105592452">Supplemental Functions</a></span></dt><dt><span class="section"><a href="sliced.html#sliced-vbi-format-negotitation">Sliced VBI Format Negotiation</a></span></dt><dt><span class="section"><a href="sliced.html#idp1105654204">Reading and writing sliced VBI data</a></span></dt><dt><span class="section"><a href="sliced.html#idp1105675332">Sliced VBI Data in MPEG Streams</a></span></dt></dl></dd><dt><span class="section"><a href="ttx.html">Teletext Interface</a></span></dt><dt><span class="section"><a href="radio.html">Radio Interface</a></span></dt><dd><dl><dt><span class="section"><a href="radio.html#idp1105906748">Querying Capabilities</a></span></dt><dt><span class="section"><a href="radio.html#idp1105909252">Supplemental Functions</a></span></dt><dt><span class="section"><a href="radio.html#idp1105872060">Programming</a></span></dt></dl></dd><dt><span class="section"><a href="rds.html">RDS Interface</a></span></dt><dd><dl><dt><span class="section"><a href="rds.html#idp1105886212">Querying Capabilities</a></span></dt><dt><span class="section"><a href="rds.html#reading-rds-data">Reading RDS data</a></span></dt><dt><span class="section"><a href="rds.html#writing-rds-data">Writing RDS data</a></span></dt><dt><span class="section"><a href="rds.html#idp1105953116">RDS datastructures</a></span></dt></dl></dd><dt><span class="section"><a href="sdr.html">Software Defined Radio Interface (SDR)</a></span></dt><dd><dl><dt><span class="section"><a href="sdr.html#idp1105978476">Querying Capabilities</a></span></dt><dt><span class="section"><a href="sdr.html#idp1106023364">Supplemental Functions</a></span></dt><dt><span class="section"><a href="sdr.html#idp1106026124">Data Format Negotiation</a></span></dt></dl></dd><dt><span class="section"><a href="event.html">Event Interface</a></span></dt><dt><span class="section"><a href="subdev.html">Sub-device Interface</a></span></dt><dd><dl><dt><span class="section"><a href="subdev.html#idp1106081860">Controls</a></span></dt><dt><span class="section"><a href="subdev.html#idp1106084444">Events</a></span></dt><dt><span class="section"><a href="subdev.html#pad-level-formats">Pad-level Formats</a></span></dt><dt><span class="section"><a href="subdev.html#v4l2-mbus-format">Media Bus Formats</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="driver.html">5. V4L2 Driver Programming</a></span></dt><dt><span class="chapter"><a href="libv4l.html">6. Libv4l Userspace Library</a></span></dt><dd><dl><dt><span class="section"><a href="libv4l.html#libv4l-introduction">Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="libv4l.html#idp1110684244">libv4lconvert</a></span></dt><dt><span class="section"><a href="libv4l.html#idp1110702668">libv4l1</a></span></dt><dt><span class="section"><a href="libv4l.html#idp1110703876">libv4l2</a></span></dt><dt><span class="section"><a href="libv4l.html#idp1110719444">v4l1compat.so wrapper library</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="compat.html">7. Changes</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#diff-v4l">Differences between V4L and V4L2</a></span></dt><dd><dl><dt><span class="section"><a href="compat.html#idp1110676308">Opening and Closing Devices</a></span></dt><dt><span class="section"><a href="compat.html#idp1110770580">Querying Capabilities</a></span></dt><dt><span class="section"><a href="compat.html#idp1110803716">Video Sources</a></span></dt><dt><span class="section"><a href="compat.html#idp1110817132">Tuning</a></span></dt><dt><span class="section"><a href="compat.html#v4l-image-properties">Image Properties</a></span></dt><dt><span class="section"><a href="compat.html#idp1110865172">Audio</a></span></dt><dt><span class="section"><a href="compat.html#idp1110884268">Frame Buffer Overlay</a></span></dt><dt><span class="section"><a href="compat.html#idp1110900244">Cropping</a></span></dt><dt><span class="section"><a href="compat.html#idp1110908652">Reading Images, Memory Mapping</a></span></dt><dt><span class="section"><a href="compat.html#idp1110929332">Reading Raw VBI Data</a></span></dt><dt><span class="section"><a href="compat.html#idp1110942012">Miscellaneous</a></span></dt></dl></dd><dt><span class="section"><a href="hist-v4l2.html">Changes of the V4L2 API</a></span></dt><dd><dl><dt><span class="section"><a href="hist-v4l2.html#idp1110945676">Early Versions</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110958468">V4L2 Version 0.16 1999-01-31</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110959340">V4L2 Version 0.18 1999-03-16</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110960348">V4L2 Version 0.19 1999-06-05</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110962996">V4L2 Version 0.20 (1999-09-10)</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110980828">V4L2 Version 0.20 incremental changes</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1110995620">V4L2 Version 0.20 2000-11-23</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111004332">V4L2 Version 0.20 2002-07-25</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111004996">V4L2 in Linux 2.5.46, 2002-10</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111100852">V4L2 2003-06-19</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111111820">V4L2 2003-11-05</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111121164">V4L2 in Linux 2.6.6, 2004-05-09</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111123236">V4L2 in Linux 2.6.8</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111125988">V4L2 spec erratum 2004-08-01</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111130996">V4L2 in Linux 2.6.14</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111133420">V4L2 in Linux 2.6.15</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111140396">V4L2 spec erratum 2005-11-27</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111142844">V4L2 spec erratum 2006-01-10</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111145788">V4L2 spec erratum 2006-02-03</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111148124">V4L2 spec erratum 2006-02-04</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111150884">V4L2 in Linux 2.6.17</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111155580">V4L2 spec erratum 2006-09-23 (Draft 0.15)</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111165556">V4L2 in Linux 2.6.18</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111171276">V4L2 in Linux 2.6.19</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111177612">V4L2 spec erratum 2006-10-12 (Draft 0.17)</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111179340">V4L2 in Linux 2.6.21</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111181100">V4L2 in Linux 2.6.22</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111188468">V4L2 in Linux 2.6.24</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111190876">V4L2 in Linux 2.6.25</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111201596">V4L2 in Linux 2.6.26</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111204236">V4L2 in Linux 2.6.27</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111208412">V4L2 in Linux 2.6.28</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111211764">V4L2 in Linux 2.6.29</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111216916">V4L2 in Linux 2.6.30</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111219084">V4L2 in Linux 2.6.32</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111225356">V4L2 in Linux 2.6.33</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111226724">V4L2 in Linux 2.6.34</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111228972">V4L2 in Linux 2.6.37</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111230468">V4L2 in Linux 2.6.39</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111232748">V4L2 in Linux 3.1</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111234556">V4L2 in Linux 3.2</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111236916">V4L2 in Linux 3.3</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111239372">V4L2 in Linux 3.4</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111242884">V4L2 in Linux 3.5</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111252356">V4L2 in Linux 3.6</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111255244">V4L2 in Linux 3.9</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111259452">V4L2 in Linux 3.10</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111261356">V4L2 in Linux 3.11</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111263564">V4L2 in Linux 3.14</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111265788">V4L2 in Linux 3.15</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111267100">V4L2 in Linux 3.16</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111268356">V4L2 in Linux 3.17</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111270876">V4L2 in Linux 3.18</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#idp1111272724">V4L2 in Linux 3.19</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#other">Relation of V4L2 to other Linux multimedia APIs</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#experimental">Experimental API Elements</a></span></dt><dt><span class="section"><a href="hist-v4l2.html#obsolete">Obsolete API Elements</a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="user-func.html">A. Function Reference</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="func-close.html">V4L2 close()</a></span><span class="refpurpose"> — Close a V4L2 device</span></dt><dt><span class="refentrytitle"><a href="func-ioctl.html">V4L2 ioctl()</a></span><span class="refpurpose"> — Program a V4L2 device</span></dt><dt><span class="refentrytitle"><a href="vidioc-create-bufs.html">ioctl VIDIOC_CREATE_BUFS</a></span><span class="refpurpose"> — Create buffers for Memory Mapped or User Pointer or DMA Buffer 159 I/O</span></dt><dt><span class="refentrytitle"><a href="vidioc-cropcap.html">ioctl VIDIOC_CROPCAP</a></span><span class="refpurpose"> — Information about the video cropping and scaling abilities</span></dt><dt><span class="refentrytitle"><a href="vidioc-dbg-g-chip-info.html">ioctl VIDIOC_DBG_G_CHIP_INFO</a></span><span class="refpurpose"> — Identify the chips on a TV card</span></dt><dt><span class="refentrytitle"><a href="vidioc-dbg-g-register.html">ioctl VIDIOC_DBG_G_REGISTER, VIDIOC_DBG_S_REGISTER</a></span><span class="refpurpose"> — Read or write hardware registers</span></dt><dt><span class="refentrytitle"><a href="vidioc-decoder-cmd.html">ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD</a></span><span class="refpurpose"> — Execute an decoder command</span></dt><dt><span class="refentrytitle"><a href="vidioc-dqevent.html">ioctl VIDIOC_DQEVENT</a></span><span class="refpurpose"> — Dequeue event</span></dt><dt><span class="refentrytitle"><a href="vidioc-dv-timings-cap.html">ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP</a></span><span class="refpurpose"> — The capabilities of the Digital Video receiver/transmitter</span></dt><dt><span class="refentrytitle"><a href="vidioc-encoder-cmd.html">ioctl VIDIOC_ENCODER_CMD, VIDIOC_TRY_ENCODER_CMD</a></span><span class="refpurpose"> — Execute an encoder command</span></dt><dt><span class="refentrytitle"><a href="vidioc-enumaudio.html">ioctl VIDIOC_ENUMAUDIO</a></span><span class="refpurpose"> — Enumerate audio inputs</span></dt><dt><span class="refentrytitle"><a href="vidioc-enumaudioout.html">ioctl VIDIOC_ENUMAUDOUT</a></span><span class="refpurpose"> — Enumerate audio outputs</span></dt><dt><span class="refentrytitle"><a href="vidioc-enum-dv-timings.html">ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS</a></span><span class="refpurpose"> — Enumerate supported Digital Video timings</span></dt><dt><span class="refentrytitle"><a href="vidioc-enum-fmt.html">ioctl VIDIOC_ENUM_FMT</a></span><span class="refpurpose"> — Enumerate image formats</span></dt><dt><span class="refentrytitle"><a href="vidioc-enum-framesizes.html">ioctl VIDIOC_ENUM_FRAMESIZES</a></span><span class="refpurpose"> — Enumerate frame sizes</span></dt><dt><span class="refentrytitle"><a href="vidioc-enum-frameintervals.html">ioctl VIDIOC_ENUM_FRAMEINTERVALS</a></span><span class="refpurpose"> — Enumerate frame intervals</span></dt><dt><span class="refentrytitle"><a href="vidioc-enum-freq-bands.html">ioctl VIDIOC_ENUM_FREQ_BANDS</a></span><span class="refpurpose"> — Enumerate supported frequency bands</span></dt><dt><span class="refentrytitle"><a href="vidioc-enuminput.html">ioctl VIDIOC_ENUMINPUT</a></span><span class="refpurpose"> — Enumerate video inputs</span></dt><dt><span class="refentrytitle"><a href="vidioc-enumoutput.html">ioctl VIDIOC_ENUMOUTPUT</a></span><span class="refpurpose"> — Enumerate video outputs</span></dt><dt><span class="refentrytitle"><a href="vidioc-enumstd.html">ioctl VIDIOC_ENUMSTD</a></span><span class="refpurpose"> — Enumerate supported video standards</span></dt><dt><span class="refentrytitle"><a href="vidioc-expbuf.html">ioctl VIDIOC_EXPBUF</a></span><span class="refpurpose"> — Export a buffer as a DMABUF file descriptor.</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-audio.html">ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO</a></span><span class="refpurpose"> — Query or select the current audio input and its 160attributes</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-audioout.html">ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT</a></span><span class="refpurpose"> — Query or select the current audio output</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-crop.html">ioctl VIDIOC_G_CROP, VIDIOC_S_CROP</a></span><span class="refpurpose"> — Get or set the current cropping rectangle</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-ctrl.html">ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL</a></span><span class="refpurpose"> — Get or set the value of a control</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-dv-timings.html">ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS</a></span><span class="refpurpose"> — Get or set DV timings for input or output</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-edid.html">ioctl VIDIOC_G_EDID, VIDIOC_S_EDID</a></span><span class="refpurpose"> — Get or set the EDID of a video receiver/transmitter</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-enc-index.html">ioctl VIDIOC_G_ENC_INDEX</a></span><span class="refpurpose"> — Get meta data about a compressed video stream</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-ext-ctrls.html">ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, 161VIDIOC_TRY_EXT_CTRLS</a></span><span class="refpurpose"> — Get or set the value of several controls, try control 162values</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-fbuf.html">ioctl VIDIOC_G_FBUF, VIDIOC_S_FBUF</a></span><span class="refpurpose"> — Get or set frame buffer overlay parameters</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-fmt.html">ioctl VIDIOC_G_FMT, VIDIOC_S_FMT, 163VIDIOC_TRY_FMT</a></span><span class="refpurpose"> — Get or set the data format, try a format</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-frequency.html">ioctl VIDIOC_G_FREQUENCY, VIDIOC_S_FREQUENCY</a></span><span class="refpurpose"> — Get or set tuner or modulator radio 164frequency</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-input.html">ioctl VIDIOC_G_INPUT, VIDIOC_S_INPUT</a></span><span class="refpurpose"> — Query or select the current video input</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-jpegcomp.html">ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP</a></span><span class="refpurpose"></span></dt><dt><span class="refentrytitle"><a href="vidioc-g-modulator.html">ioctl VIDIOC_G_MODULATOR, VIDIOC_S_MODULATOR</a></span><span class="refpurpose"> — Get or set modulator attributes</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-output.html">ioctl VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT</a></span><span class="refpurpose"> — Query or select the current video output</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-parm.html">ioctl VIDIOC_G_PARM, VIDIOC_S_PARM</a></span><span class="refpurpose"> — Get or set streaming parameters</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-priority.html">ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY</a></span><span class="refpurpose"> — Query or request the access priority associated with a 165file descriptor</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-selection.html">ioctl VIDIOC_G_SELECTION, VIDIOC_S_SELECTION</a></span><span class="refpurpose"> — Get or set one of the selection rectangles</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-sliced-vbi-cap.html">ioctl VIDIOC_G_SLICED_VBI_CAP</a></span><span class="refpurpose"> — Query sliced VBI capabilities</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-std.html">ioctl VIDIOC_G_STD, VIDIOC_S_STD</a></span><span class="refpurpose"> — Query or select the video standard of the current input</span></dt><dt><span class="refentrytitle"><a href="vidioc-g-tuner.html">ioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER</a></span><span class="refpurpose"> — Get or set tuner attributes</span></dt><dt><span class="refentrytitle"><a href="vidioc-log-status.html">ioctl VIDIOC_LOG_STATUS</a></span><span class="refpurpose"> — Log driver status information</span></dt><dt><span class="refentrytitle"><a href="vidioc-overlay.html">ioctl VIDIOC_OVERLAY</a></span><span class="refpurpose"> — Start or stop video overlay</span></dt><dt><span class="refentrytitle"><a href="vidioc-prepare-buf.html">ioctl VIDIOC_PREPARE_BUF</a></span><span class="refpurpose"> — Prepare a buffer for I/O</span></dt><dt><span class="refentrytitle"><a href="vidioc-qbuf.html">ioctl VIDIOC_QBUF, VIDIOC_DQBUF</a></span><span class="refpurpose"> — Exchange a buffer with the driver</span></dt><dt><span class="refentrytitle"><a href="vidioc-querybuf.html">ioctl VIDIOC_QUERYBUF</a></span><span class="refpurpose"> — Query the status of a buffer</span></dt><dt><span class="refentrytitle"><a href="vidioc-querycap.html">ioctl VIDIOC_QUERYCAP</a></span><span class="refpurpose"> — Query device capabilities</span></dt><dt><span class="refentrytitle"><a href="vidioc-queryctrl.html">ioctl VIDIOC_QUERYCTRL, VIDIOC_QUERY_EXT_CTRL, VIDIOC_QUERYMENU</a></span><span class="refpurpose"> — Enumerate controls and menu control items</span></dt><dt><span class="refentrytitle"><a href="vidioc-query-dv-timings.html">ioctl VIDIOC_QUERY_DV_TIMINGS</a></span><span class="refpurpose"> — Sense the DV preset received by the current 166input</span></dt><dt><span class="refentrytitle"><a href="vidioc-querystd.html">ioctl VIDIOC_QUERYSTD</a></span><span class="refpurpose"> — Sense the video standard received by the current 167input</span></dt><dt><span class="refentrytitle"><a href="vidioc-reqbufs.html">ioctl VIDIOC_REQBUFS</a></span><span class="refpurpose"> — Initiate Memory Mapping or User Pointer I/O</span></dt><dt><span class="refentrytitle"><a href="vidioc-s-hw-freq-seek.html">ioctl VIDIOC_S_HW_FREQ_SEEK</a></span><span class="refpurpose"> — Perform a hardware frequency seek</span></dt><dt><span class="refentrytitle"><a href="vidioc-streamon.html">ioctl VIDIOC_STREAMON, VIDIOC_STREAMOFF</a></span><span class="refpurpose"> — Start or stop streaming I/O</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-enum-frame-interval.html">ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL</a></span><span class="refpurpose"> — Enumerate frame intervals</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-enum-frame-size.html">ioctl VIDIOC_SUBDEV_ENUM_FRAME_SIZE</a></span><span class="refpurpose"> — Enumerate media bus frame sizes</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-enum-mbus-code.html">ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE</a></span><span class="refpurpose"> — Enumerate media bus formats</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-g-crop.html">ioctl VIDIOC_SUBDEV_G_CROP, VIDIOC_SUBDEV_S_CROP</a></span><span class="refpurpose"> — Get or set the crop rectangle on a subdev pad</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-g-fmt.html">ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT</a></span><span class="refpurpose"> — Get or set the data format on a subdev pad</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-g-frame-interval.html">ioctl VIDIOC_SUBDEV_G_FRAME_INTERVAL, VIDIOC_SUBDEV_S_FRAME_INTERVAL</a></span><span class="refpurpose"> — Get or set the frame interval on a subdev pad</span></dt><dt><span class="refentrytitle"><a href="vidioc-subdev-g-selection.html">ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION</a></span><span class="refpurpose"> — Get or set selection rectangles on a subdev pad</span></dt><dt><span class="refentrytitle"><a href="vidioc-subscribe-event.html">ioctl VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT</a></span><span class="refpurpose"> — Subscribe or unsubscribe event</span></dt><dt><span class="refentrytitle"><a href="func-mmap.html">V4L2 mmap()</a></span><span class="refpurpose"> — Map device memory into application address space</span></dt><dt><span class="refentrytitle"><a href="func-munmap.html">V4L2 munmap()</a></span><span class="refpurpose"> — Unmap device memory</span></dt><dt><span class="refentrytitle"><a href="func-open.html">V4L2 open()</a></span><span class="refpurpose"> — Open a V4L2 device</span></dt><dt><span class="refentrytitle"><a href="func-poll.html">V4L2 poll()</a></span><span class="refpurpose"> — Wait for some event on a file descriptor</span></dt><dt><span class="refentrytitle"><a href="func-read.html">V4L2 read()</a></span><span class="refpurpose"> — Read from a V4L2 device</span></dt><dt><span class="refentrytitle"><a href="func-select.html">V4L2 select()</a></span><span class="refpurpose"> — Synchronous I/O multiplexing</span></dt><dt><span class="refentrytitle"><a href="func-write.html">V4L2 write()</a></span><span class="refpurpose"> — Write to a V4L2 device</span></dt></dl></dd><dt><span class="appendix"><a href="apb.html">B. Common definitions for V4L2 and V4L2 subdev interfaces</a></span></dt><dd><dl><dt><span class="section"><a href="apb.html#v4l2-selections-common">Common selection definitions</a></span></dt><dd><dl><dt><span class="section"><a href="apb.html#v4l2-selection-targets">Selection targets</a></span></dt><dt><span class="section"><a href="apb.html#v4l2-selection-flags">Selection flags</a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="videodev.html">C. Video For Linux Two Header File</a></span></dt><dt><span class="appendix"><a href="capture-example.html">D. Video Capture Example</a></span></dt><dt><span class="appendix"><a href="v4l2grab-example.html">E. Video Grabber example using libv4l</a></span></dt><dt><span class="index"><a href="ix01.html">List of Types</a></span></dt><dt><span class="bibliography"><a href="bi01.html">References</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pr01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="common.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Common API Elements</td></tr></table></div></body></html> 168