Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ffmpeg-doc / usr / share / doc / ffmpeg / api / avdevice_8h_source.html
Size: Mime:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>FFmpeg: libavdevice/avdevice.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FFmpeg
   &#160;<span id="projectnumber">3.0.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_ac0f646f7dac5d9f814abb87c8dfa999.html">libavdevice</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">avdevice.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="avdevice_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * This file is part of FFmpeg.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * FFmpeg is free software; you can redistribute it and/or</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * modify it under the terms of the GNU Lesser General Public</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * License as published by the Free Software Foundation; either</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * FFmpeg is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Lesser General Public License for more details.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * License along with FFmpeg; if not, write to the Free Software</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef AVDEVICE_AVDEVICE_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define AVDEVICE_AVDEVICE_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="libavdevice_2version_8h.html">version.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * @file</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * @ingroup lavd</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * Main libavdevice API header</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> * @defgroup lavd Special devices muxing/demuxing library</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> * @{</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"> * Libavdevice is a complementary library to @ref libavf &quot;libavformat&quot;. It</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"> * provides various &quot;special&quot; platform-specific muxers and demuxers, e.g. for</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> * grabbing devices, audio capture and playback etc. As a consequence, the</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"> * (de)muxers in libavdevice are of the AVFMT_NOFILE type (they use their own</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment"> * I/O functions). The filename passed to avformat_open_input() often does not</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"> * refer to an actually existing file, but has some special device-specific</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"> * meaning - e.g. for x11grab it is the display name.</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment"> * To use libavdevice, simply call avdevice_register_all() to register all</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"> * compiled muxers and demuxers. They all use standard libavformat API.</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"> * @}</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="log_8h.html">libavutil/log.h</a>&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="opt_8h.html">libavutil/opt.h</a>&quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="dict_8h.html">libavutil/dict.h</a>&quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="avformat_8h.html">libavformat/avformat.h</a>&quot;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment"> * Return the LIBAVDEVICE_VERSION_INT constant.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="avdevice_8h.html#a6a111710c7b02c2a11d8b6c43e0dd63d">avdevice_version</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment"> * Return the libavdevice build-time configuration.</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="avdevice_8h.html#a84490e9144a7c9311a3df5cc2a66e0c6">avdevice_configuration</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment"> * Return the libavdevice license.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="avdevice_8h.html#a146d7576da658d0fb388aa89d563bcfa">avdevice_license</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment"> * Initialize libavdevice and register all the input and output devices.</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment"> * @warning This function is not thread safe.</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keywordtype">void</span> <a class="code" href="avdevice_8h.html#a7c90a3585267b55941ae2f7388c006b6">avdevice_register_all</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment"> * Audio input devices iterator.</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment"> * If d is NULL, returns the first registered input audio/video device,</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment"> * if d is non-NULL, returns the next registered input audio/video device after d</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment"> * or NULL if d is the last one.</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<a class="code" href="structAVInputFormat.html">AVInputFormat</a> *<a class="code" href="avdevice_8h.html#a521e86d5a7e1f96f894edbecda3d6970">av_input_audio_device_next</a>(<a class="code" href="structAVInputFormat.html">AVInputFormat</a>  *d);</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment"> * Video input devices iterator.</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment"> * If d is NULL, returns the first registered input audio/video device,</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment"> * if d is non-NULL, returns the next registered input audio/video device after d</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"> * or NULL if d is the last one.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<a class="code" href="structAVInputFormat.html">AVInputFormat</a> *<a class="code" href="avdevice_8h.html#a4f4b2a42fa434a3557b96a02ba7cd36a">av_input_video_device_next</a>(<a class="code" href="structAVInputFormat.html">AVInputFormat</a>  *d);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"> * Audio output devices iterator.</span></div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment"> * If d is NULL, returns the first registered output audio/video device,</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment"> * if d is non-NULL, returns the next registered output audio/video device after d</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment"> * or NULL if d is the last one.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<a class="code" href="structAVOutputFormat.html">AVOutputFormat</a> *<a class="code" href="avdevice_8h.html#af79c3b9e53b5631f422f7b92768c5164">av_output_audio_device_next</a>(<a class="code" href="structAVOutputFormat.html">AVOutputFormat</a> *d);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment"> * Video output devices iterator.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment"> * If d is NULL, returns the first registered output audio/video device,</span></div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment"> * if d is non-NULL, returns the next registered output audio/video device after d</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment"> * or NULL if d is the last one.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="structAVOutputFormat.html">AVOutputFormat</a> *<a class="code" href="avdevice_8h.html#a52f3b793ab7b9511521069cf6213ebd2">av_output_video_device_next</a>(<a class="code" href="structAVOutputFormat.html">AVOutputFormat</a> *d);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structAVDeviceRect.html">  108</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVDeviceRect.html">AVDeviceRect</a> {</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structAVDeviceRect.html#a59c84ebbf20ec757079bcad8cf6938ba">  109</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceRect.html#a59c84ebbf20ec757079bcad8cf6938ba">x</a>;      <span class="comment">/**&lt; x coordinate of top left corner */</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structAVDeviceRect.html#abe9a24b60ee938e8eb9fd30522d1602b">  110</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceRect.html#abe9a24b60ee938e8eb9fd30522d1602b">y</a>;      <span class="comment">/**&lt; y coordinate of top left corner */</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structAVDeviceRect.html#afb6766c6297f824d7051f1800f7fda90">  111</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceRect.html#afb6766c6297f824d7051f1800f7fda90">width</a>;  <span class="comment">/**&lt; width */</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structAVDeviceRect.html#a0554500f55abfff27a4141b3346a93f6">  112</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceRect.html#a0554500f55abfff27a4141b3346a93f6">height</a>; <span class="comment">/**&lt; height */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;} <a class="code" href="structAVDeviceRect.html">AVDeviceRect</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment"> * Message types used by avdevice_app_to_dev_control_message().</span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">  118</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a> {<span class="comment"></span></div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">     * Dummy message.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811">  122</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811">AV_APP_TO_DEV_NONE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;O&#39;</span>,<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;E&#39;</span>),</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">     * Window size change message.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">     * Message is sent to the device every time the application changes the size</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">     * of the window device renders to.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">     * Message should also be sent right after window is created.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">     * data: AVDeviceRect: new window size.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249">  133</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249">AV_APP_TO_DEV_WINDOW_SIZE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;G&#39;</span>,<span class="charliteral">&#39;E&#39;</span>,<span class="charliteral">&#39;O&#39;</span>,<span class="charliteral">&#39;M&#39;</span>),</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">     * Repaint request message.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment">     * Message is sent to the device when window has to be repainted.</span></div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment">     * data: AVDeviceRect: area required to be repainted.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment">     *       NULL: whole area is required to be repainted.</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710">  143</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710">AV_APP_TO_DEV_WINDOW_REPAINT</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39;E&#39;</span>,<span class="charliteral">&#39;P&#39;</span>,<span class="charliteral">&#39;A&#39;</span>),</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">     * Request pause/play.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">     * Application requests pause/unpause playback.</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">     * Mostly usable with devices that have internal buffer.</span></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">     * By default devices are not paused.</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">     * data: NULL</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804">  154</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804">AV_APP_TO_DEV_PAUSE</a>        = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747">  155</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747">AV_APP_TO_DEV_PLAY</a>         = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;Y&#39;</span>),</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c">  156</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c">AV_APP_TO_DEV_TOGGLE_PAUSE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">     * Volume control message.</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment">     * Set volume level. It may be device-dependent if volume</span></div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment">     * is changed per stream or system wide. Per stream volume</span></div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">     * change is expected when possible.</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">     * data: double: new volume with range of 0.0 - 1.0.</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9">  167</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9">AV_APP_TO_DEV_SET_VOLUME</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;S&#39;</span>, <span class="charliteral">&#39;V&#39;</span>, <span class="charliteral">&#39;O&#39;</span>, <span class="charliteral">&#39;L&#39;</span>),</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">     * Mute control messages.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">     * Change mute state. It may be device-dependent if mute status</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">     * is changed per stream or system wide. Per stream mute status</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">     * change is expected when possible.</span></div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751">  178</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751">AV_APP_TO_DEV_MUTE</a>        = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39; &#39;</span>, <span class="charliteral">&#39;M&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f">  179</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f">AV_APP_TO_DEV_UNMUTE</a>      = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;M&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b">  180</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b">AV_APP_TO_DEV_TOGGLE_MUTE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;M&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="comment">     * Get volume/mute messages.</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">     * Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or</span></div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">     * AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138">  190</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138">AV_APP_TO_DEV_GET_VOLUME</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;V&#39;</span>, <span class="charliteral">&#39;O&#39;</span>, <span class="charliteral">&#39;L&#39;</span>),</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3">  191</a></span>&#160;    <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3">AV_APP_TO_DEV_GET_MUTE</a>   = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;M&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;};</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment"> * Message types used by avdevice_dev_to_app_control_message().</span></div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">  197</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a> {<span class="comment"></span></div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment">     * Dummy message.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce">  201</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce">AV_DEV_TO_APP_NONE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;O&#39;</span>,<span class="charliteral">&#39;N&#39;</span>,<span class="charliteral">&#39;E&#39;</span>),</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment">     * Create window buffer message.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">     * Device requests to create a window buffer. Exact meaning is device-</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">     * and application-dependent. Message is sent before rendering first</span></div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">     * frame and all one-shot initializations should be done here.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">     * Application is allowed to ignore preferred window buffer size.</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">     * @note: Application is obligated to inform about window buffer size</span></div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">     *        with AV_APP_TO_DEV_WINDOW_SIZE message.</span></div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment">     * data: AVDeviceRect: preferred size of the window buffer.</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">     *       NULL: no preferred size of the window buffer.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020">  217</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020">AV_DEV_TO_APP_CREATE_WINDOW_BUFFER</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;C&#39;</span>,<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39;E&#39;</span>),</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">     * Prepare window buffer message.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">     * Device requests to prepare a window buffer for rendering.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment">     * Exact meaning is device- and application-dependent.</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment">     * Message is sent before rendering of each frame.</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e">  228</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e">AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;P&#39;</span>,<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39;E&#39;</span>),</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment">     * Display window buffer message.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">     * Device requests to display a window buffer.</span></div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">     * Message is sent when new frame is ready to be displayed.</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">     * Usually buffers need to be swapped in handler of this message.</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd">  239</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd">AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;D&#39;</span>,<span class="charliteral">&#39;I&#39;</span>,<span class="charliteral">&#39;S&#39;</span>),</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment">     * Destroy window buffer message.</span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">     * Device requests to destroy a window buffer.</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment">     * Message is sent when device is about to be destroyed and window</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment">     * buffer is not required anymore.</span></div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04">  250</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04">AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;D&#39;</span>,<span class="charliteral">&#39;E&#39;</span>,<span class="charliteral">&#39;S&#39;</span>),</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment">     * Buffer fullness status messages.</span></div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment">     * Device signals buffer overflow/underflow.</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment">     * data: NULL.</span></div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229">  259</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229">AV_DEV_TO_APP_BUFFER_OVERFLOW</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;O&#39;</span>,<span class="charliteral">&#39;F&#39;</span>,<span class="charliteral">&#39;L&#39;</span>),</div>
<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1">  260</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1">AV_DEV_TO_APP_BUFFER_UNDERFLOW</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;U&#39;</span>,<span class="charliteral">&#39;F&#39;</span>,<span class="charliteral">&#39;L&#39;</span>),</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment">     * Buffer readable/writable.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment">     * Device informs that buffer is readable/writable.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment">     * When possible, device informs how many bytes can be read/write.</span></div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">     * @warning Device may not inform when number of bytes than can be read/write changes.</span></div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment">     * data: int64_t: amount of bytes available to read/write.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">     *       NULL: amount of bytes available to read/write is not known.</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2">  273</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2">AV_DEV_TO_APP_BUFFER_READABLE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39;D&#39;</span>,<span class="charliteral">&#39; &#39;</span>),</div>
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4">  274</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4">AV_DEV_TO_APP_BUFFER_WRITABLE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;B&#39;</span>,<span class="charliteral">&#39;W&#39;</span>,<span class="charliteral">&#39;R&#39;</span>,<span class="charliteral">&#39; &#39;</span>),</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment">     * Mute state change message.</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">     * Device informs that mute state has changed.</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment">     * data: int: 0 for not muted state, non-zero for muted state.</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02">  283</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02">AV_DEV_TO_APP_MUTE_STATE_CHANGED</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;C&#39;</span>,<span class="charliteral">&#39;M&#39;</span>,<span class="charliteral">&#39;U&#39;</span>,<span class="charliteral">&#39;T&#39;</span>),</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="comment">    /**</span></div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment">     * Volume level change message.</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment">     * Device informs that volume level has changed.</span></div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment">     * data: double: new volume with range of 0.0 - 1.0.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c">  292</a></span>&#160;    <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c">AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">&#39;C&#39;</span>,<span class="charliteral">&#39;V&#39;</span>,<span class="charliteral">&#39;O&#39;</span>,<span class="charliteral">&#39;L&#39;</span>),</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;};</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment"> * Send control message from application to device.</span></div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="comment"> * @param s         device context.</span></div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment"> * @param type      message type.</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment"> * @param data      message data. Exact type depends on message type.</span></div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment"> * @param data_size size of message data.</span></div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment"> * @return &gt;= 0 on success, negative on error.</span></div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment"> *         AVERROR(ENOSYS) when device doesn&#39;t implement handler of the message.</span></div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45">avdevice_app_to_dev_control_message</a>(<span class="keyword">struct</span> <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *s,</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                                        <span class="keyword">enum</span> <a class="code" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a> type,</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                                        <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> data_size);</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment"> * Send control message from device to application.</span></div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment"> * @param s         device context.</span></div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment"> * @param type      message type.</span></div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment"> * @param data      message data. Can be NULL.</span></div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment"> * @param data_size size of message data.</span></div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment"> * @return &gt;= 0 on success, negative on error.</span></div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="comment"> *         AVERROR(ENOSYS) when application doesn&#39;t implement handler of the message.</span></div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e">avdevice_dev_to_app_control_message</a>(<span class="keyword">struct</span> <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *s,</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                                        <span class="keyword">enum</span> <a class="code" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a> type,</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                                        <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> data_size);</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="comment"> * Following API allows user to probe device capabilities (supported codecs,</span></div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="comment"> * pixel formats, sample formats, resolutions, channel counts, etc).</span></div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment"> * It is build on top op AVOption API.</span></div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="comment"> * Queried capabilities make it possible to set up converters of video or audio</span></div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment"> * parameters that fit to the device.</span></div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="comment"> * List of capabilities that can be queried:</span></div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="comment"> *  - Capabilities valid for both audio and video devices:</span></div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment"> *    - codec:          supported audio/video codecs.</span></div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT (AVCodecID value)</span></div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment"> *  - Capabilities valid for audio devices:</span></div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment"> *    - sample_format:  supported sample formats.</span></div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT (AVSampleFormat value)</span></div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment"> *    - sample_rate:    supported sample rates.</span></div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT</span></div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment"> *    - channels:       supported number of channels.</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT</span></div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment"> *    - channel_layout: supported channel layouts.</span></div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT64</span></div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment"> *  - Capabilities valid for video devices:</span></div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment"> *    - pixel_format:   supported pixel formats.</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_INT (AVPixelFormat value)</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment"> *    - window_size:    supported window sizes (describes size of the window size presented to the user).</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_IMAGE_SIZE</span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment"> *    - frame_size:     supported frame sizes (describes size of provided video frames).</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_IMAGE_SIZE</span></div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment"> *    - fps:            supported fps values</span></div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment"> *                      type: AV_OPT_TYPE_RATIONAL</span></div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment"> * Value of the capability may be set by user using av_opt_set() function</span></div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment"> * and AVDeviceCapabilitiesQuery object. Following queries will</span></div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment"> * limit results to the values matching already set capabilities.</span></div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment"> * For example, setting a codec may impact number of formats or fps values</span></div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment"> * returned during next query. Setting invalid value may limit results to zero.</span></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment"> * Example of the usage basing on opengl output device:</span></div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment"> * @code</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment"> *  AVFormatContext *oc = NULL;</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment"> *  AVDeviceCapabilitiesQuery *caps = NULL;</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment"> *  AVOptionRanges *ranges;</span></div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment"> *  int ret;</span></div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment"> *  if ((ret = avformat_alloc_output_context2(&amp;oc, NULL, &quot;opengl&quot;, NULL)) &lt; 0)</span></div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment"> *      goto fail;</span></div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment"> *  if (avdevice_capabilities_create(&amp;caps, oc, NULL) &lt; 0)</span></div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment"> *      goto fail;</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="comment"> *  //query codecs</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="comment"> *  if (av_opt_query_ranges(&amp;ranges, caps, &quot;codec&quot;, AV_OPT_MULTI_COMPONENT_RANGE)) &lt; 0)</span></div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="comment"> *      goto fail;</span></div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="comment"> *  //pick codec here and set it</span></div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="comment"> *  av_opt_set(caps, &quot;codec&quot;, AV_CODEC_ID_RAWVIDEO, 0);</span></div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="comment"> *  //query format</span></div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="comment"> *  if (av_opt_query_ranges(&amp;ranges, caps, &quot;pixel_format&quot;, AV_OPT_MULTI_COMPONENT_RANGE)) &lt; 0)</span></div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="comment"> *      goto fail;</span></div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="comment"> *  //pick format here and set it</span></div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="comment"> *  av_opt_set(caps, &quot;pixel_format&quot;, AV_PIX_FMT_YUV420P, 0);</span></div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="comment"> *  //query and set more capabilities</span></div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment"> * fail:</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="comment"> *  //clean up code</span></div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="comment"> *  avdevice_capabilities_free(&amp;query, oc);</span></div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment"> *  avformat_free_context(oc);</span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="comment"> * @endcode</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="comment"> * Structure describes device capabilities.</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="comment"> * It is used by devices in conjunction with av_device_capabilities AVOption table</span></div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="comment"> * to implement capabilities probing API based on AVOption API. Should not be used directly.</span></div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html">  399</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> {</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#ac5c8e5089e1bf1212b24193c0368f954">  400</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="structAVClass.html">AVClass</a> *<a class="code" href="structAVDeviceCapabilitiesQuery.html#ac5c8e5089e1bf1212b24193c0368f954">av_class</a>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a97d7bfa2eacb9870273b02dd8ccfbe24">  401</a></span>&#160;    <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *<a class="code" href="structAVDeviceCapabilitiesQuery.html#a97d7bfa2eacb9870273b02dd8ccfbe24">device_context</a>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a6b090d7f3793b7ec15caa3f4739fdec0">  402</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce">AVCodecID</a> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a6b090d7f3793b7ec15caa3f4739fdec0">codec</a>;</div>
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#ad2f5c18496a1f70ac6c38f3379411f0b">  403</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5">AVSampleFormat</a> <a class="code" href="structAVDeviceCapabilitiesQuery.html#ad2f5c18496a1f70ac6c38f3379411f0b">sample_format</a>;</div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a794f536fac8ba6c778df7ded1fd5eb99">  404</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5">AVPixelFormat</a> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a794f536fac8ba6c778df7ded1fd5eb99">pixel_format</a>;</div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a094ff000e19b39981ad9a802557b773e">  405</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a094ff000e19b39981ad9a802557b773e">sample_rate</a>;</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a9b92050015539fbc4a9f6555eb3a672b">  406</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a9b92050015539fbc4a9f6555eb3a672b">channels</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#afd9911687a45ef4c5094242f06bf6fae">  407</a></span>&#160;    int64_t <a class="code" href="structAVDeviceCapabilitiesQuery.html#afd9911687a45ef4c5094242f06bf6fae">channel_layout</a>;</div>
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#af1003cea861179da74c546d4228cf20a">  408</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#af1003cea861179da74c546d4228cf20a">window_width</a>;</div>
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a8625729bdff08b21445e88e1d538899d">  409</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a8625729bdff08b21445e88e1d538899d">window_height</a>;</div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a24268116864767bd084f8b5bbb896150">  410</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a24268116864767bd084f8b5bbb896150">frame_width</a>;</div>
<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a0d44c3def566bbfb2b304de2cb779847">  411</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a0d44c3def566bbfb2b304de2cb779847">frame_height</a>;</div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="structAVDeviceCapabilitiesQuery.html#a69a44cfb7d8fc9d706cfbe5a991ecaf7">  412</a></span>&#160;    <a class="code" href="structAVRational.html">AVRational</a> <a class="code" href="structAVDeviceCapabilitiesQuery.html#a69a44cfb7d8fc9d706cfbe5a991ecaf7">fps</a>;</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;} <a class="code" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a>;</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="comment"> * AVOption table used by devices to implement device capabilities API. Should not be used by a user.</span></div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structAVOption.html">AVOption</a> <a class="code" href="avdevice_8h.html#a1362af8ea203781c69bc644179388259">av_device_capabilities</a>[];</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="comment"> * Initialize capabilities probing API based on AVOption API.</span></div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="comment"> * avdevice_capabilities_free() must be called when query capabilities API is</span></div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="comment"> * not used anymore.</span></div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="comment"> * @param[out] caps      Device capabilities data. Pointer to a NULL pointer must be passed.</span></div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="comment"> * @param s              Context of the device.</span></div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="comment"> * @param device_options An AVDictionary filled with device-private options.</span></div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="comment"> *                       On return this parameter will be destroyed and replaced with a dict</span></div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="comment"> *                       containing options that were not found. May be NULL.</span></div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="comment"> *                       The same options must be passed later to avformat_write_header() for output</span></div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="comment"> *                       devices or avformat_open_input() for input devices, or at any other place</span></div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="comment"> *                       that affects device-private options.</span></div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="comment"> * @return &gt;= 0 on success, negative otherwise.</span></div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341">avdevice_capabilities_create</a>(<a class="code" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> **caps, <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *s,</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                                 <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **device_options);</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="comment"> * Free resources created by avdevice_capabilities_create()</span></div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="comment"> * @param caps Device capabilities data to be freed.</span></div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="comment"> * @param s    Context of the device.</span></div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keywordtype">void</span> <a class="code" href="avdevice_8h.html#a89c36d6e5698ad7dc2637226e1655dff">avdevice_capabilities_free</a>(<a class="code" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> **caps, <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *s);</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="comment"> * Structure describes basic parameters of the device.</span></div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="structAVDeviceInfo.html">  451</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVDeviceInfo.html">AVDeviceInfo</a> {</div>
<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="structAVDeviceInfo.html#af856e00bdd54b7d87fc4afdf211c4757">  452</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structAVDeviceInfo.html#af856e00bdd54b7d87fc4afdf211c4757">device_name</a>;                   <span class="comment">/**&lt; device name, format depends on device */</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="structAVDeviceInfo.html#a3d642926b6f45112cda628a395f6135a">  453</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structAVDeviceInfo.html#a3d642926b6f45112cda628a395f6135a">device_description</a>;            <span class="comment">/**&lt; human friendly name */</span></div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;} <a class="code" href="structAVDeviceInfo.html">AVDeviceInfo</a>;</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="comment"> * List of devices.</span></div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="structAVDeviceInfoList.html">  459</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> {</div>
<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="structAVDeviceInfoList.html#ae2515bb1fe98693b85adbdf380d76cd8">  460</a></span>&#160;    <a class="code" href="structAVDeviceInfo.html">AVDeviceInfo</a> **<a class="code" href="structAVDeviceInfoList.html#ae2515bb1fe98693b85adbdf380d76cd8">devices</a>;              <span class="comment">/**&lt; list of autodetected devices */</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structAVDeviceInfoList.html#a8253ca399209d2cfd83667b78accbe28">  461</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceInfoList.html#a8253ca399209d2cfd83667b78accbe28">nb_devices</a>;                      <span class="comment">/**&lt; number of autodetected devices */</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="structAVDeviceInfoList.html#a88278f6896ae0b13d526c89014dac77b">  462</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structAVDeviceInfoList.html#a88278f6896ae0b13d526c89014dac77b">default_device</a>;                  <span class="comment">/**&lt; index of default device or -1 if no default */</span></div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;} <a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a>;</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="comment"> * List devices.</span></div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="comment"> * Returns available device names and their parameters.</span></div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="comment"> * @note: Some devices may accept system-dependent device names that cannot be</span></div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="comment"> *        autodetected. The list returned by this function cannot be assumed to</span></div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="comment"> *        be always completed.</span></div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="comment"> * @param s                device context.</span></div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="comment"> * @param[out] device_list list of autodetected devices.</span></div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="comment"> * @return count of autodetected devices, negative on error.</span></div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474">avdevice_list_devices</a>(<span class="keyword">struct</span> <a class="code" href="structAVFormatContext.html">AVFormatContext</a> *s, <a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list);</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment"> * Convenient function to free result of avdevice_list_devices().</span></div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="comment"> * @param devices device list to be freed.</span></div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="keywordtype">void</span> <a class="code" href="avdevice_8h.html#a52dcbb2d9ae0f33b7a89548b5a0c87bd">avdevice_free_list_devices</a>(<a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list);</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="comment"> * List devices.</span></div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="comment"> * Returns available device names and their parameters.</span></div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="comment"> * These are convinient wrappers for avdevice_list_devices().</span></div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="comment"> * Device context is allocated and deallocated internally.</span></div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment"> * @param device           device format. May be NULL if device name is set.</span></div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="comment"> * @param device_name      device name. May be NULL if device format is set.</span></div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="comment"> * @param device_options   An AVDictionary filled with device-private options. May be NULL.</span></div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="comment"> *                         The same options must be passed later to avformat_write_header() for output</span></div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="comment"> *                         devices or avformat_open_input() for input devices, or at any other place</span></div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="comment"> *                         that affects device-private options.</span></div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="comment"> * @param[out] device_list list of autodetected devices</span></div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="comment"> * @return count of autodetected devices, negative on error.</span></div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="comment"> * @note device argument takes precedence over device_name when both are set.</span></div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#a202488c6f1ed7e87b659c7b8df079e50">avdevice_list_input_sources</a>(<span class="keyword">struct</span> <a class="code" href="structAVInputFormat.html">AVInputFormat</a> *device, <span class="keyword">const</span> <span class="keywordtype">char</span> *device_name,</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;                                <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *device_options, <a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list);</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="keywordtype">int</span> <a class="code" href="avdevice_8h.html#a2227616998276fefe5e4221e478d667f">avdevice_list_output_sinks</a>(<span class="keyword">struct</span> <a class="code" href="structAVOutputFormat.html">AVOutputFormat</a> *device, <span class="keyword">const</span> <span class="keywordtype">char</span> *device_name,</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;                               <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *device_options, <a class="code" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list);</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* AVDEVICE_AVDEVICE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="avdevice_8h_html_a4bf9cc38ae904b9104fda1e4def71474"><div class="ttname"><a href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474">avdevice_list_devices</a></div><div class="ttdeci">int avdevice_list_devices(struct AVFormatContext *s, AVDeviceInfoList **device_list)</div><div class="ttdoc">List devices. </div></div>
<div class="ttc" id="structAVDeviceInfo_html"><div class="ttname"><a href="structAVDeviceInfo.html">AVDeviceInfo</a></div><div class="ttdoc">Structure describes basic parameters of the device. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00451">avdevice.h:451</a></div></div>
<div class="ttc" id="structAVDeviceRect_html_a59c84ebbf20ec757079bcad8cf6938ba"><div class="ttname"><a href="structAVDeviceRect.html#a59c84ebbf20ec757079bcad8cf6938ba">AVDeviceRect::x</a></div><div class="ttdeci">int x</div><div class="ttdoc">x coordinate of top left corner </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00109">avdevice.h:109</a></div></div>
<div class="ttc" id="structAVOption_html"><div class="ttname"><a href="structAVOption.html">AVOption</a></div><div class="ttdoc">AVOption. </div><div class="ttdef"><b>Definition:</b> <a href="opt_8h_source.html#l00245">opt.h:245</a></div></div>
<div class="ttc" id="avdevice_8h_html_a521e86d5a7e1f96f894edbecda3d6970"><div class="ttname"><a href="avdevice_8h.html#a521e86d5a7e1f96f894edbecda3d6970">av_input_audio_device_next</a></div><div class="ttdeci">AVInputFormat * av_input_audio_device_next(AVInputFormat *d)</div><div class="ttdoc">Audio input devices iterator. </div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c">AV_APP_TO_DEV_TOGGLE_PAUSE</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00156">avdevice.h:156</a></div></div>
<div class="ttc" id="structAVDeviceInfo_html_a3d642926b6f45112cda628a395f6135a"><div class="ttname"><a href="structAVDeviceInfo.html#a3d642926b6f45112cda628a395f6135a">AVDeviceInfo::device_description</a></div><div class="ttdeci">char * device_description</div><div class="ttdoc">human friendly name </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00453">avdevice.h:453</a></div></div>
<div class="ttc" id="avdevice_8h_html_a84490e9144a7c9311a3df5cc2a66e0c6"><div class="ttname"><a href="avdevice_8h.html#a84490e9144a7c9311a3df5cc2a66e0c6">avdevice_configuration</a></div><div class="ttdeci">const char * avdevice_configuration(void)</div><div class="ttdoc">Return the libavdevice build-time configuration. </div></div>
<div class="ttc" id="avdevice_8h_html_a146d7576da658d0fb388aa89d563bcfa"><div class="ttname"><a href="avdevice_8h.html#a146d7576da658d0fb388aa89d563bcfa">avdevice_license</a></div><div class="ttdeci">const char * avdevice_license(void)</div><div class="ttdoc">Return the libavdevice license. </div></div>
<div class="ttc" id="structAVDeviceInfo_html_af856e00bdd54b7d87fc4afdf211c4757"><div class="ttname"><a href="structAVDeviceInfo.html#af856e00bdd54b7d87fc4afdf211c4757">AVDeviceInfo::device_name</a></div><div class="ttdeci">char * device_name</div><div class="ttdoc">device name, format depends on device </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00452">avdevice.h:452</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04">AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER</a></div><div class="ttdoc">Destroy window buffer message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00250">avdevice.h:250</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a094ff000e19b39981ad9a802557b773e"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a094ff000e19b39981ad9a802557b773e">AVDeviceCapabilitiesQuery::sample_rate</a></div><div class="ttdeci">int sample_rate</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00405">avdevice.h:405</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_afd9911687a45ef4c5094242f06bf6fae"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#afd9911687a45ef4c5094242f06bf6fae">AVDeviceCapabilitiesQuery::channel_layout</a></div><div class="ttdeci">int64_t channel_layout</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00407">avdevice.h:407</a></div></div>
<div class="ttc" id="structAVDeviceRect_html"><div class="ttname"><a href="structAVDeviceRect.html">AVDeviceRect</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00108">avdevice.h:108</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710">AV_APP_TO_DEV_WINDOW_REPAINT</a></div><div class="ttdoc">Repaint request message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00143">avdevice.h:143</a></div></div>
<div class="ttc" id="avdevice_8h_html_af79c3b9e53b5631f422f7b92768c5164"><div class="ttname"><a href="avdevice_8h.html#af79c3b9e53b5631f422f7b92768c5164">av_output_audio_device_next</a></div><div class="ttdeci">AVOutputFormat * av_output_audio_device_next(AVOutputFormat *d)</div><div class="ttdoc">Audio output devices iterator. </div></div>
<div class="ttc" id="structAVInputFormat_html"><div class="ttname"><a href="structAVInputFormat.html">AVInputFormat</a></div><div class="ttdef"><b>Definition:</b> <a href="avformat_8h_source.html#l00656">avformat.h:656</a></div></div>
<div class="ttc" id="avdevice_8h_html_a6a111710c7b02c2a11d8b6c43e0dd63d"><div class="ttname"><a href="avdevice_8h.html#a6a111710c7b02c2a11d8b6c43e0dd63d">avdevice_version</a></div><div class="ttdeci">unsigned avdevice_version(void)</div><div class="ttdoc">Return the LIBAVDEVICE_VERSION_INT constant. </div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249">AV_APP_TO_DEV_WINDOW_SIZE</a></div><div class="ttdoc">Window size change message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00133">avdevice.h:133</a></div></div>
<div class="ttc" id="structAVFormatContext_html"><div class="ttname"><a href="structAVFormatContext.html">AVFormatContext</a></div><div class="ttdoc">Format I/O context. </div><div class="ttdef"><b>Definition:</b> <a href="avformat_8h_source.html#l01314">avformat.h:1314</a></div></div>
<div class="ttc" id="dict_8h_html"><div class="ttname"><a href="dict_8h.html">dict.h</a></div><div class="ttdoc">Public dictionary API. </div></div>
<div class="ttc" id="avdevice_8h_html_a52dcbb2d9ae0f33b7a89548b5a0c87bd"><div class="ttname"><a href="avdevice_8h.html#a52dcbb2d9ae0f33b7a89548b5a0c87bd">avdevice_free_list_devices</a></div><div class="ttdeci">void avdevice_free_list_devices(AVDeviceInfoList **device_list)</div><div class="ttdoc">Convenient function to free result of avdevice_list_devices(). </div></div>
<div class="ttc" id="opt_8h_html"><div class="ttname"><a href="opt_8h.html">opt.h</a></div><div class="ttdoc">AVOptions. </div></div>
<div class="ttc" id="avdevice_8h_html_af426838f78fb5bcdc2095c4d3162cf6e"><div class="ttname"><a href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e">avdevice_dev_to_app_control_message</a></div><div class="ttdeci">int avdevice_dev_to_app_control_message(struct AVFormatContext *s, enum AVDevToAppMessageType type, void *data, size_t data_size)</div><div class="ttdoc">Send control message from device to application. </div></div>
<div class="ttc" id="avdevice_8h_html_af802f1388f3f209cbbc93d9ba983a341"><div class="ttname"><a href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341">avdevice_capabilities_create</a></div><div class="ttdeci">int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, AVDictionary **device_options)</div><div class="ttdoc">Initialize capabilities probing API based on AVOption API. </div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2">AV_DEV_TO_APP_BUFFER_READABLE</a></div><div class="ttdoc">Buffer readable/writable. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00273">avdevice.h:273</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a></div><div class="ttdeci">AVDevToAppMessageType</div><div class="ttdoc">Message types used by avdevice_dev_to_app_control_message(). </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00197">avdevice.h:197</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b">AV_APP_TO_DEV_TOGGLE_MUTE</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00180">avdevice.h:180</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e">AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER</a></div><div class="ttdoc">Prepare window buffer message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00228">avdevice.h:228</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_ac5c8e5089e1bf1212b24193c0368f954"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#ac5c8e5089e1bf1212b24193c0368f954">AVDeviceCapabilitiesQuery::av_class</a></div><div class="ttdeci">const AVClass * av_class</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00400">avdevice.h:400</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020">AV_DEV_TO_APP_CREATE_WINDOW_BUFFER</a></div><div class="ttdoc">Create window buffer message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00217">avdevice.h:217</a></div></div>
<div class="ttc" id="group__lavc__core_html_gaadca229ad2c20e060a14fec08a5cc7ce"><div class="ttname"><a href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce">AVCodecID</a></div><div class="ttdeci">AVCodecID</div><div class="ttdoc">Identify the syntax and semantics of the bitstream. </div><div class="ttdef"><b>Definition:</b> <a href="avcodec_8h_source.html#l00101">avcodec.h:101</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a69a44cfb7d8fc9d706cfbe5a991ecaf7"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a69a44cfb7d8fc9d706cfbe5a991ecaf7">AVDeviceCapabilitiesQuery::fps</a></div><div class="ttdeci">AVRational fps</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00412">avdevice.h:412</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_ad2f5c18496a1f70ac6c38f3379411f0b"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#ad2f5c18496a1f70ac6c38f3379411f0b">AVDeviceCapabilitiesQuery::sample_format</a></div><div class="ttdeci">enum AVSampleFormat sample_format</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00403">avdevice.h:403</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce">AV_DEV_TO_APP_NONE</a></div><div class="ttdoc">Dummy message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00201">avdevice.h:201</a></div></div>
<div class="ttc" id="group__lavu__dict_html_ga1d7cc0833bee918994a600556410315f"><div class="ttname"><a href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a></div><div class="ttdeci">struct AVDictionary AVDictionary</div><div class="ttdef"><b>Definition:</b> <a href="dict_8h_source.html#l00091">dict.h:91</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a0d44c3def566bbfb2b304de2cb779847"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a0d44c3def566bbfb2b304de2cb779847">AVDeviceCapabilitiesQuery::frame_height</a></div><div class="ttdeci">int frame_height</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00411">avdevice.h:411</a></div></div>
<div class="ttc" id="avdevice_8h_html_a62f5a22de09f0bc7fd2380d39ee1bc45"><div class="ttname"><a href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45">avdevice_app_to_dev_control_message</a></div><div class="ttdeci">int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, void *data, size_t data_size)</div><div class="ttdoc">Send control message from application to device. </div></div>
<div class="ttc" id="structAVDeviceInfoList_html_ae2515bb1fe98693b85adbdf380d76cd8"><div class="ttname"><a href="structAVDeviceInfoList.html#ae2515bb1fe98693b85adbdf380d76cd8">AVDeviceInfoList::devices</a></div><div class="ttdeci">AVDeviceInfo ** devices</div><div class="ttdoc">list of autodetected devices </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00460">avdevice.h:460</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a8625729bdff08b21445e88e1d538899d"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a8625729bdff08b21445e88e1d538899d">AVDeviceCapabilitiesQuery::window_height</a></div><div class="ttdeci">int window_height</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00409">avdevice.h:409</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a></div><div class="ttdeci">AVAppToDevMessageType</div><div class="ttdoc">Message types used by avdevice_app_to_dev_control_message(). </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00118">avdevice.h:118</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a97d7bfa2eacb9870273b02dd8ccfbe24"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a97d7bfa2eacb9870273b02dd8ccfbe24">AVDeviceCapabilitiesQuery::device_context</a></div><div class="ttdeci">AVFormatContext * device_context</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00401">avdevice.h:401</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751">AV_APP_TO_DEV_MUTE</a></div><div class="ttdoc">Mute control messages. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00178">avdevice.h:178</a></div></div>
<div class="ttc" id="avdevice_8h_html_a1362af8ea203781c69bc644179388259"><div class="ttname"><a href="avdevice_8h.html#a1362af8ea203781c69bc644179388259">av_device_capabilities</a></div><div class="ttdeci">const AVOption av_device_capabilities[]</div><div class="ttdoc">AVOption table used by devices to implement device capabilities API. </div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9">AV_APP_TO_DEV_SET_VOLUME</a></div><div class="ttdoc">Volume control message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00167">avdevice.h:167</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c">AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED</a></div><div class="ttdoc">Volume level change message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00292">avdevice.h:292</a></div></div>
<div class="ttc" id="avdevice_8h_html_a202488c6f1ed7e87b659c7b8df079e50"><div class="ttname"><a href="avdevice_8h.html#a202488c6f1ed7e87b659c7b8df079e50">avdevice_list_input_sources</a></div><div class="ttdeci">int avdevice_list_input_sources(struct AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)</div><div class="ttdoc">List devices. </div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804">AV_APP_TO_DEV_PAUSE</a></div><div class="ttdoc">Request pause/play. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00154">avdevice.h:154</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a794f536fac8ba6c778df7ded1fd5eb99"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a794f536fac8ba6c778df7ded1fd5eb99">AVDeviceCapabilitiesQuery::pixel_format</a></div><div class="ttdeci">enum AVPixelFormat pixel_format</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00404">avdevice.h:404</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02">AV_DEV_TO_APP_MUTE_STATE_CHANGED</a></div><div class="ttdoc">Mute state change message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00283">avdevice.h:283</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a9b92050015539fbc4a9f6555eb3a672b"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a9b92050015539fbc4a9f6555eb3a672b">AVDeviceCapabilitiesQuery::channels</a></div><div class="ttdeci">int channels</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00406">avdevice.h:406</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a6b090d7f3793b7ec15caa3f4739fdec0"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a6b090d7f3793b7ec15caa3f4739fdec0">AVDeviceCapabilitiesQuery::codec</a></div><div class="ttdeci">enum AVCodecID codec</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00402">avdevice.h:402</a></div></div>
<div class="ttc" id="structAVDeviceRect_html_a0554500f55abfff27a4141b3346a93f6"><div class="ttname"><a href="structAVDeviceRect.html#a0554500f55abfff27a4141b3346a93f6">AVDeviceRect::height</a></div><div class="ttdeci">int height</div><div class="ttdoc">height </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00112">avdevice.h:112</a></div></div>
<div class="ttc" id="group__lavu__sampfmts_html_gaf9a51ca15301871723577c730b5865c5"><div class="ttname"><a href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5">AVSampleFormat</a></div><div class="ttdeci">AVSampleFormat</div><div class="ttdoc">Audio sample formats. </div><div class="ttdef"><b>Definition:</b> <a href="samplefmt_8h_source.html#l00059">samplefmt.h:59</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_af1003cea861179da74c546d4228cf20a"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#af1003cea861179da74c546d4228cf20a">AVDeviceCapabilitiesQuery::window_width</a></div><div class="ttdeci">int window_width</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00408">avdevice.h:408</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4">AV_DEV_TO_APP_BUFFER_WRITABLE</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00274">avdevice.h:274</a></div></div>
<div class="ttc" id="avdevice_8h_html_a7c90a3585267b55941ae2f7388c006b6"><div class="ttname"><a href="avdevice_8h.html#a7c90a3585267b55941ae2f7388c006b6">avdevice_register_all</a></div><div class="ttdeci">void avdevice_register_all(void)</div><div class="ttdoc">Initialize libavdevice and register all the input and output devices. </div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229">AV_DEV_TO_APP_BUFFER_OVERFLOW</a></div><div class="ttdoc">Buffer fullness status messages. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00259">avdevice.h:259</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1">AV_DEV_TO_APP_BUFFER_UNDERFLOW</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00260">avdevice.h:260</a></div></div>
<div class="ttc" id="structAVClass_html"><div class="ttname"><a href="structAVClass.html">AVClass</a></div><div class="ttdoc">Describe the class of an AVClass context structure. </div><div class="ttdef"><b>Definition:</b> <a href="log_8h_source.html#l00067">log.h:67</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747">AV_APP_TO_DEV_PLAY</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00155">avdevice.h:155</a></div></div>
<div class="ttc" id="structAVRational_html"><div class="ttname"><a href="structAVRational.html">AVRational</a></div><div class="ttdoc">rational number numerator/denominator </div><div class="ttdef"><b>Definition:</b> <a href="rational_8h_source.html#l00043">rational.h:43</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f">AV_APP_TO_DEV_UNMUTE</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00179">avdevice.h:179</a></div></div>
<div class="ttc" id="avdevice_8h_html_a4f4b2a42fa434a3557b96a02ba7cd36a"><div class="ttname"><a href="avdevice_8h.html#a4f4b2a42fa434a3557b96a02ba7cd36a">av_input_video_device_next</a></div><div class="ttdeci">AVInputFormat * av_input_video_device_next(AVInputFormat *d)</div><div class="ttdoc">Video input devices iterator. </div></div>
<div class="ttc" id="structAVDeviceInfoList_html_a88278f6896ae0b13d526c89014dac77b"><div class="ttname"><a href="structAVDeviceInfoList.html#a88278f6896ae0b13d526c89014dac77b">AVDeviceInfoList::default_device</a></div><div class="ttdeci">int default_device</div><div class="ttdoc">index of default device or -1 if no default </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00462">avdevice.h:462</a></div></div>
<div class="ttc" id="structAVDeviceInfoList_html"><div class="ttname"><a href="structAVDeviceInfoList.html">AVDeviceInfoList</a></div><div class="ttdoc">List of devices. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00459">avdevice.h:459</a></div></div>
<div class="ttc" id="libavdevice_2version_8h_html"><div class="ttname"><a href="libavdevice_2version_8h.html">version.h</a></div><div class="ttdoc">Libavdevice version macros. </div></div>
<div class="ttc" id="structAVDeviceRect_html_afb6766c6297f824d7051f1800f7fda90"><div class="ttname"><a href="structAVDeviceRect.html#afb6766c6297f824d7051f1800f7fda90">AVDeviceRect::width</a></div><div class="ttdeci">int width</div><div class="ttdoc">width </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00111">avdevice.h:111</a></div></div>
<div class="ttc" id="avdevice_8h_html_a89c36d6e5698ad7dc2637226e1655dff"><div class="ttname"><a href="avdevice_8h.html#a89c36d6e5698ad7dc2637226e1655dff">avdevice_capabilities_free</a></div><div class="ttdeci">void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s)</div><div class="ttdoc">Free resources created by avdevice_capabilities_create() </div></div>
<div class="ttc" id="avformat_8h_html"><div class="ttname"><a href="avformat_8h.html">avformat.h</a></div><div class="ttdoc">Main libavformat public API header. </div></div>
<div class="ttc" id="avdevice_8h_html_a52f3b793ab7b9511521069cf6213ebd2"><div class="ttname"><a href="avdevice_8h.html#a52f3b793ab7b9511521069cf6213ebd2">av_output_video_device_next</a></div><div class="ttdeci">AVOutputFormat * av_output_video_device_next(AVOutputFormat *d)</div><div class="ttdoc">Video output devices iterator. </div></div>
<div class="ttc" id="structAVOutputFormat_html"><div class="ttname"><a href="structAVOutputFormat.html">AVOutputFormat</a></div><div class="ttdef"><b>Definition:</b> <a href="avformat_8h_source.html#l00522">avformat.h:522</a></div></div>
<div class="ttc" id="common_8h_html_a1e233db224cd0a3079fd4572d1a3d717"><div class="ttname"><a href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a></div><div class="ttdeci">#define MKBETAG(a, b, c, d)</div><div class="ttdef"><b>Definition:</b> <a href="common_8h_source.html#l00343">common.h:343</a></div></div>
<div class="ttc" id="log_8h_html"><div class="ttname"><a href="log_8h.html">log.h</a></div></div>
<div class="ttc" id="avdevice_8h_html_a2227616998276fefe5e4221e478d667f"><div class="ttname"><a href="avdevice_8h.html#a2227616998276fefe5e4221e478d667f">avdevice_list_output_sinks</a></div><div class="ttdeci">int avdevice_list_output_sinks(struct AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)</div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html_a24268116864767bd084f8b5bbb896150"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html#a24268116864767bd084f8b5bbb896150">AVDeviceCapabilitiesQuery::frame_width</a></div><div class="ttdeci">int frame_width</div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00410">avdevice.h:410</a></div></div>
<div class="ttc" id="structAVDeviceRect_html_abe9a24b60ee938e8eb9fd30522d1602b"><div class="ttname"><a href="structAVDeviceRect.html#abe9a24b60ee938e8eb9fd30522d1602b">AVDeviceRect::y</a></div><div class="ttdeci">int y</div><div class="ttdoc">y coordinate of top left corner </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00110">avdevice.h:110</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3">AV_APP_TO_DEV_GET_MUTE</a></div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00191">avdevice.h:191</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138">AV_APP_TO_DEV_GET_VOLUME</a></div><div class="ttdoc">Get volume/mute messages. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00190">avdevice.h:190</a></div></div>
<div class="ttc" id="avdevice_8h_html_a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811"><div class="ttname"><a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811">AV_APP_TO_DEV_NONE</a></div><div class="ttdoc">Dummy message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00122">avdevice.h:122</a></div></div>
<div class="ttc" id="structAVDeviceInfoList_html_a8253ca399209d2cfd83667b78accbe28"><div class="ttname"><a href="structAVDeviceInfoList.html#a8253ca399209d2cfd83667b78accbe28">AVDeviceInfoList::nb_devices</a></div><div class="ttdeci">int nb_devices</div><div class="ttdoc">number of autodetected devices </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00461">avdevice.h:461</a></div></div>
<div class="ttc" id="structAVDeviceCapabilitiesQuery_html"><div class="ttname"><a href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a></div><div class="ttdoc">Following API allows user to probe device capabilities (supported codecs, pixel formats, sample formats, resolutions, channel counts, etc). </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00399">avdevice.h:399</a></div></div>
<div class="ttc" id="pixfmt_8h_html_a9a8e335cf3be472042bc9f0cf80cd4c5"><div class="ttname"><a href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5">AVPixelFormat</a></div><div class="ttdeci">AVPixelFormat</div><div class="ttdoc">Pixel format. </div><div class="ttdef"><b>Definition:</b> <a href="pixfmt_8h_source.html#l00061">pixfmt.h:61</a></div></div>
<div class="ttc" id="avdevice_8h_html_ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd"><div class="ttname"><a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd">AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER</a></div><div class="ttdoc">Display window buffer message. </div><div class="ttdef"><b>Definition:</b> <a href="avdevice_8h_source.html#l00239">avdevice.h:239</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>