Repository URL to install this package:
Version:
7:2.7.1-1ubuntu3 ▾
|
<!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"/>
<title>FFmpeg: libavdevice/avdevice.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FFmpeg
 <span id="projectnumber">2.7.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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 Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data 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 List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">libavdevice/avdevice.h File Reference<div class="ingroups"><a class="el" href="group__lavd.html">Special devices muxing/demuxing library</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Main libavdevice API header.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include "<a class="el" href="libavdevice_2version_8h_source.html">version.h</a>"</code><br/>
<code>#include "<a class="el" href="log_8h_source.html">libavutil/log.h</a>"</code><br/>
<code>#include "<a class="el" href="opt_8h_source.html">libavutil/opt.h</a>"</code><br/>
<code>#include "<a class="el" href="dict_8h_source.html">libavutil/dict.h</a>"</code><br/>
<code>#include "<a class="el" href="avformat_8h_source.html">libavformat/avformat.h</a>"</code><br/>
</div>
<p><a href="avdevice_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVDeviceRect.html">AVDeviceRect</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Following API allows user to probe device capabilities (supported codecs, pixel formats, sample formats, resolutions, channel counts, etc). <a href="structAVDeviceCapabilitiesQuery.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVDeviceInfo.html">AVDeviceInfo</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure describes basic parameters of the device. <a href="structAVDeviceInfo.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of devices. <a href="structAVDeviceInfoList.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a> { <br/>
  <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811">AV_APP_TO_DEV_NONE</a> = MKBETAG('N','O','N','E'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249">AV_APP_TO_DEV_WINDOW_SIZE</a> = MKBETAG('G','E','O','M'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710">AV_APP_TO_DEV_WINDOW_REPAINT</a> = MKBETAG('R','E','P','A'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804">AV_APP_TO_DEV_PAUSE</a> = MKBETAG('P', 'A', 'U', ' '),
<br/>
  <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747">AV_APP_TO_DEV_PLAY</a> = MKBETAG('P', 'L', 'A', 'Y'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c">AV_APP_TO_DEV_TOGGLE_PAUSE</a> = MKBETAG('P', 'A', 'U', 'T'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9">AV_APP_TO_DEV_SET_VOLUME</a> = MKBETAG('S', 'V', 'O', 'L'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751">AV_APP_TO_DEV_MUTE</a> = MKBETAG(' ', 'M', 'U', 'T'),
<br/>
  <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f">AV_APP_TO_DEV_UNMUTE</a> = MKBETAG('U', 'M', 'U', 'T'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b">AV_APP_TO_DEV_TOGGLE_MUTE</a> = MKBETAG('T', 'M', 'U', 'T'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138">AV_APP_TO_DEV_GET_VOLUME</a> = MKBETAG('G', 'V', 'O', 'L'),
<a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3">AV_APP_TO_DEV_GET_MUTE</a> = MKBETAG('G', 'M', 'U', 'T')
<br/>
}</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Message types used by <a class="el" href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45" title="Send control message from application to device.">avdevice_app_to_dev_control_message()</a>. <a href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a> { <br/>
  <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce">AV_DEV_TO_APP_NONE</a> = MKBETAG('N','O','N','E'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020">AV_DEV_TO_APP_CREATE_WINDOW_BUFFER</a> = MKBETAG('B','C','R','E'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e">AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER</a> = MKBETAG('B','P','R','E'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd">AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER</a> = MKBETAG('B','D','I','S'),
<br/>
  <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04">AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER</a> = MKBETAG('B','D','E','S'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229">AV_DEV_TO_APP_BUFFER_OVERFLOW</a> = MKBETAG('B','O','F','L'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1">AV_DEV_TO_APP_BUFFER_UNDERFLOW</a> = MKBETAG('B','U','F','L'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2">AV_DEV_TO_APP_BUFFER_READABLE</a> = MKBETAG('B','R','D',' '),
<br/>
  <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4">AV_DEV_TO_APP_BUFFER_WRITABLE</a> = MKBETAG('B','W','R',' '),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02">AV_DEV_TO_APP_MUTE_STATE_CHANGED</a> = MKBETAG('C','M','U','T'),
<a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c">AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED</a> = MKBETAG('C','V','O','L')
<br/>
}</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Message types used by <a class="el" href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e" title="Send control message from device to application.">avdevice_dev_to_app_control_message()</a>. <a href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a6a111710c7b02c2a11d8b6c43e0dd63d">avdevice_version</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the LIBAVDEVICE_VERSION_INT constant. <a href="#a6a111710c7b02c2a11d8b6c43e0dd63d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a84490e9144a7c9311a3df5cc2a66e0c6">avdevice_configuration</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the libavdevice build-time configuration. <a href="#a84490e9144a7c9311a3df5cc2a66e0c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a146d7576da658d0fb388aa89d563bcfa">avdevice_license</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the libavdevice license. <a href="#a146d7576da658d0fb388aa89d563bcfa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a7c90a3585267b55941ae2f7388c006b6">avdevice_register_all</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize libavdevice and register all the input and output devices. <a href="#a7c90a3585267b55941ae2f7388c006b6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVInputFormat.html">AVInputFormat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a521e86d5a7e1f96f894edbecda3d6970">av_input_audio_device_next</a> (<a class="el" href="structAVInputFormat.html">AVInputFormat</a> *d)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Audio input devices iterator. <a href="#a521e86d5a7e1f96f894edbecda3d6970"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVInputFormat.html">AVInputFormat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a4f4b2a42fa434a3557b96a02ba7cd36a">av_input_video_device_next</a> (<a class="el" href="structAVInputFormat.html">AVInputFormat</a> *d)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Video input devices iterator. <a href="#a4f4b2a42fa434a3557b96a02ba7cd36a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#af79c3b9e53b5631f422f7b92768c5164">av_output_audio_device_next</a> (<a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> *d)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Audio output devices iterator. <a href="#af79c3b9e53b5631f422f7b92768c5164"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a52f3b793ab7b9511521069cf6213ebd2">av_output_video_device_next</a> (<a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> *d)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Video output devices iterator. <a href="#a52f3b793ab7b9511521069cf6213ebd2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45">avdevice_app_to_dev_control_message</a> (struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> *s, enum <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a> type, void *data, size_t data_size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send control message from application to device. <a href="#a62f5a22de09f0bc7fd2380d39ee1bc45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e">avdevice_dev_to_app_control_message</a> (struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> *s, enum <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a> type, void *data, size_t data_size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send control message from device to application. <a href="#af426838f78fb5bcdc2095c4d3162cf6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341">avdevice_capabilities_create</a> (<a class="el" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> **caps, <a class="el" href="structAVFormatContext.html">AVFormatContext</a> *s, <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **device_options)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize capabilities probing API based on <a class="el" href="structAVOption.html" title="AVOption.">AVOption</a> API. <a href="#af802f1388f3f209cbbc93d9ba983a341"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a89c36d6e5698ad7dc2637226e1655dff">avdevice_capabilities_free</a> (<a class="el" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> **caps, <a class="el" href="structAVFormatContext.html">AVFormatContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Free resources created by <a class="el" href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341" title="Initialize capabilities probing API based on AVOption API.">avdevice_capabilities_create()</a> <a href="#a89c36d6e5698ad7dc2637226e1655dff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474">avdevice_list_devices</a> (struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> *s, <a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">List devices. <a href="#a4bf9cc38ae904b9104fda1e4def71474"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a52dcbb2d9ae0f33b7a89548b5a0c87bd">avdevice_free_list_devices</a> (<a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenient function to free result of <a class="el" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474" title="List devices.">avdevice_list_devices()</a>. <a href="#a52dcbb2d9ae0f33b7a89548b5a0c87bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a202488c6f1ed7e87b659c7b8df079e50">avdevice_list_input_sources</a> (struct <a class="el" href="structAVInputFormat.html">AVInputFormat</a> *device, const char *device_name, <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *device_options, <a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">List devices. <a href="#a202488c6f1ed7e87b659c7b8df079e50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a2227616998276fefe5e4221e478d667f">avdevice_list_output_sinks</a> (struct <a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> *device, const char *device_name, <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *device_options, <a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> **device_list)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structAVOption.html">AVOption</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="avdevice_8h.html#a1362af8ea203781c69bc644179388259">av_device_capabilities</a> []</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structAVOption.html" title="AVOption.">AVOption</a> table used by devices to implement device capabilities API. <a href="#a1362af8ea203781c69bc644179388259"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Main libavdevice API header. </p>
<p>Definition in file <a class="el" href="avdevice_8h_source.html">avdevice.h</a>.</p>
</div><hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a16d549a25f11693a06a211f00864fed8"></a><!-- doxytag: member="avdevice.h::AVAppToDevMessageType" ref="a16d549a25f11693a06a211f00864fed8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Message types used by <a class="el" href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45" title="Send control message from application to device.">avdevice_app_to_dev_control_message()</a>. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811"></a><!-- doxytag: member="AV_APP_TO_DEV_NONE" ref="a16d549a25f11693a06a211f00864fed8a635d820c2098c4f58feff50b7d6c2811" args="" -->AV_APP_TO_DEV_NONE</em> </td><td>
<p>Dummy message. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249"></a><!-- doxytag: member="AV_APP_TO_DEV_WINDOW_SIZE" ref="a16d549a25f11693a06a211f00864fed8ace5fb49b2638f933e758fed3dcb07249" args="" -->AV_APP_TO_DEV_WINDOW_SIZE</em> </td><td>
<p>Window size change message. </p>
<p>Message is sent to the device every time the application changes the size of the window device renders to. Message should also be sent right after window is created.</p>
<p>data: <a class="el" href="structAVDeviceRect.html">AVDeviceRect</a>: new window size. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710"></a><!-- doxytag: member="AV_APP_TO_DEV_WINDOW_REPAINT" ref="a16d549a25f11693a06a211f00864fed8a9f4006d75c6e368d9d0224d973d57710" args="" -->AV_APP_TO_DEV_WINDOW_REPAINT</em> </td><td>
<p>Repaint request message. </p>
<p>Message is sent to the device when window has to be repainted.</p>
<p>data: <a class="el" href="structAVDeviceRect.html">AVDeviceRect</a>: area required to be repainted. NULL: whole area is required to be repainted. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804"></a><!-- doxytag: member="AV_APP_TO_DEV_PAUSE" ref="a16d549a25f11693a06a211f00864fed8a89a46eae01f8ff45ec1f200e6738d804" args="" -->AV_APP_TO_DEV_PAUSE</em> </td><td>
<p>Request pause/play. </p>
<p>Application requests pause/unpause playback. Mostly usable with devices that have internal buffer. By default devices are not paused.</p>
<p>data: NULL </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747"></a><!-- doxytag: member="AV_APP_TO_DEV_PLAY" ref="a16d549a25f11693a06a211f00864fed8a344983cb9068e56d3f847162081a9747" args="" -->AV_APP_TO_DEV_PLAY</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c"></a><!-- doxytag: member="AV_APP_TO_DEV_TOGGLE_PAUSE" ref="a16d549a25f11693a06a211f00864fed8a754ae9e6688b1de6f92140415e56b40c" args="" -->AV_APP_TO_DEV_TOGGLE_PAUSE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9"></a><!-- doxytag: member="AV_APP_TO_DEV_SET_VOLUME" ref="a16d549a25f11693a06a211f00864fed8abac3d409c36e4774717f9a8ecf24ada9" args="" -->AV_APP_TO_DEV_SET_VOLUME</em> </td><td>
<p>Volume control message. </p>
<p>Set volume level. It may be device-dependent if volume is changed per stream or system wide. Per stream volume change is expected when possible.</p>
<p>data: double: new volume with range of 0.0 - 1.0. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751"></a><!-- doxytag: member="AV_APP_TO_DEV_MUTE" ref="a16d549a25f11693a06a211f00864fed8a93114a33bcd20f06d39fb9a64febf751" args="" -->AV_APP_TO_DEV_MUTE</em> </td><td>
<p>Mute control messages. </p>
<p>Change mute state. It may be device-dependent if mute status is changed per stream or system wide. Per stream mute status change is expected when possible.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f"></a><!-- doxytag: member="AV_APP_TO_DEV_UNMUTE" ref="a16d549a25f11693a06a211f00864fed8ad8c2e96b8cf1ebd5e85c5fd171eecc3f" args="" -->AV_APP_TO_DEV_UNMUTE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b"></a><!-- doxytag: member="AV_APP_TO_DEV_TOGGLE_MUTE" ref="a16d549a25f11693a06a211f00864fed8ad83bcf41ae7e0d09e46bdc2b240afb4b" args="" -->AV_APP_TO_DEV_TOGGLE_MUTE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138"></a><!-- doxytag: member="AV_APP_TO_DEV_GET_VOLUME" ref="a16d549a25f11693a06a211f00864fed8a5caaa1fda2910d345270d8ac1710c138" args="" -->AV_APP_TO_DEV_GET_VOLUME</em> </td><td>
<p>Get volume/mute messages. </p>
<p>Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3"></a><!-- doxytag: member="AV_APP_TO_DEV_GET_MUTE" ref="a16d549a25f11693a06a211f00864fed8a8219697bb3af980fa778ffb1e11606b3" args="" -->AV_APP_TO_DEV_GET_MUTE</em> </td><td>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="avdevice_8h_source.html#l00118">118</a> of file <a class="el" href="avdevice_8h_source.html">avdevice.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac379d3691ce091da6387a461a158a690"></a><!-- doxytag: member="avdevice.h::AVDevToAppMessageType" ref="ac379d3691ce091da6387a461a158a690" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Message types used by <a class="el" href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e" title="Send control message from device to application.">avdevice_dev_to_app_control_message()</a>. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce"></a><!-- doxytag: member="AV_DEV_TO_APP_NONE" ref="ac379d3691ce091da6387a461a158a690a64ccc494050138379bd52b62159ea4ce" args="" -->AV_DEV_TO_APP_NONE</em> </td><td>
<p>Dummy message. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020"></a><!-- doxytag: member="AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" ref="ac379d3691ce091da6387a461a158a690a0c4bc0ff29547bc0dc4bd5d0aba95020" args="" -->AV_DEV_TO_APP_CREATE_WINDOW_BUFFER</em> </td><td>
<p>Create window buffer message. </p>
<p>Device requests to create a window buffer. Exact meaning is device- and application-dependent. Message is sent before rendering first frame and all one-shot initializations should be done here. Application is allowed to ignore preferred window buffer size.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>: Application is obligated to inform about window buffer size with AV_APP_TO_DEV_WINDOW_SIZE message.</dd></dl>
<p>data: <a class="el" href="structAVDeviceRect.html">AVDeviceRect</a>: preferred size of the window buffer. NULL: no preferred size of the window buffer. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e"></a><!-- doxytag: member="AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" ref="ac379d3691ce091da6387a461a158a690a7d665015d93c6f6f0bf6bdb3d86c619e" args="" -->AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER</em> </td><td>
<p>Prepare window buffer message. </p>
<p>Device requests to prepare a window buffer for rendering. Exact meaning is device- and application-dependent. Message is sent before rendering of each frame.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd"></a><!-- doxytag: member="AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" ref="ac379d3691ce091da6387a461a158a690a1108397b3605ed9aff591de55a3c27bd" args="" -->AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER</em> </td><td>
<p>Display window buffer message. </p>
<p>Device requests to display a window buffer. Message is sent when new frame is ready to be displayed. Usually buffers need to be swapped in handler of this message.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04"></a><!-- doxytag: member="AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" ref="ac379d3691ce091da6387a461a158a690abd200e116b23c39311db9661d9221b04" args="" -->AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER</em> </td><td>
<p>Destroy window buffer message. </p>
<p>Device requests to destroy a window buffer. Message is sent when device is about to be destroyed and window buffer is not required anymore.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229"></a><!-- doxytag: member="AV_DEV_TO_APP_BUFFER_OVERFLOW" ref="ac379d3691ce091da6387a461a158a690a037a21369f35dd608f54fb34022de229" args="" -->AV_DEV_TO_APP_BUFFER_OVERFLOW</em> </td><td>
<p>Buffer fullness status messages. </p>
<p>Device signals buffer overflow/underflow.</p>
<p>data: NULL. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1"></a><!-- doxytag: member="AV_DEV_TO_APP_BUFFER_UNDERFLOW" ref="ac379d3691ce091da6387a461a158a690ac3652337ce29a2bb83a57ae9b76196c1" args="" -->AV_DEV_TO_APP_BUFFER_UNDERFLOW</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2"></a><!-- doxytag: member="AV_DEV_TO_APP_BUFFER_READABLE" ref="ac379d3691ce091da6387a461a158a690a1fe6ba0b4093fb06244e342105d9c1a2" args="" -->AV_DEV_TO_APP_BUFFER_READABLE</em> </td><td>
<p>Buffer readable/writable. </p>
<p>Device informs that buffer is readable/writable. When possible, device informs how many bytes can be read/write.</p>
<dl class="warning"><dt><b>Warning:</b></dt><dd>Device may not inform when number of bytes than can be read/write changes.</dd></dl>
<p>data: int64_t: amount of bytes available to read/write. NULL: amount of bytes available to read/write is not known. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4"></a><!-- doxytag: member="AV_DEV_TO_APP_BUFFER_WRITABLE" ref="ac379d3691ce091da6387a461a158a690a0cf06e453ce4b8618573bf9fbeca07f4" args="" -->AV_DEV_TO_APP_BUFFER_WRITABLE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02"></a><!-- doxytag: member="AV_DEV_TO_APP_MUTE_STATE_CHANGED" ref="ac379d3691ce091da6387a461a158a690a3e4c4485f83fa9818ce1e9a559a7dc02" args="" -->AV_DEV_TO_APP_MUTE_STATE_CHANGED</em> </td><td>
<p>Mute state change message. </p>
<p>Device informs that mute state has changed.</p>
<p>data: int: 0 for not muted state, non-zero for muted state. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c"></a><!-- doxytag: member="AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED" ref="ac379d3691ce091da6387a461a158a690a19abbd0fc9488541fd4df18660120e0c" args="" -->AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED</em> </td><td>
<p>Volume level change message. </p>
<p>Device informs that volume level has changed.</p>
<p>data: double: new volume with range of 0.0 - 1.0. </p>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="avdevice_8h_source.html#l00197">197</a> of file <a class="el" href="avdevice_8h_source.html">avdevice.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a6a111710c7b02c2a11d8b6c43e0dd63d"></a><!-- doxytag: member="avdevice.h::avdevice_version" ref="a6a111710c7b02c2a11d8b6c43e0dd63d" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="avdevice_8h.html#a6a111710c7b02c2a11d8b6c43e0dd63d">avdevice_version</a> </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the LIBAVDEVICE_VERSION_INT constant. </p>
</div>
</div>
<a class="anchor" id="a84490e9144a7c9311a3df5cc2a66e0c6"></a><!-- doxytag: member="avdevice.h::avdevice_configuration" ref="a84490e9144a7c9311a3df5cc2a66e0c6" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="avdevice_8h.html#a84490e9144a7c9311a3df5cc2a66e0c6">avdevice_configuration</a> </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the libavdevice build-time configuration. </p>
</div>
</div>
<a class="anchor" id="a146d7576da658d0fb388aa89d563bcfa"></a><!-- doxytag: member="avdevice.h::avdevice_license" ref="a146d7576da658d0fb388aa89d563bcfa" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="avdevice_8h.html#a146d7576da658d0fb388aa89d563bcfa">avdevice_license</a> </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the libavdevice license. </p>
</div>
</div>
<a class="anchor" id="a7c90a3585267b55941ae2f7388c006b6"></a><!-- doxytag: member="avdevice.h::avdevice_register_all" ref="a7c90a3585267b55941ae2f7388c006b6" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avdevice_8h.html#a7c90a3585267b55941ae2f7388c006b6">avdevice_register_all</a> </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize libavdevice and register all the input and output devices. </p>
<dl class="warning"><dt><b>Warning:</b></dt><dd>This function is not thread safe. </dd></dl>
</div>
</div>
<a class="anchor" id="a521e86d5a7e1f96f894edbecda3d6970"></a><!-- doxytag: member="avdevice.h::av_input_audio_device_next" ref="a521e86d5a7e1f96f894edbecda3d6970" args="(AVInputFormat *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVInputFormat.html">AVInputFormat</a>* <a class="el" href="avdevice_8h.html#a521e86d5a7e1f96f894edbecda3d6970">av_input_audio_device_next</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVInputFormat.html">AVInputFormat</a> * </td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Audio input devices iterator. </p>
<p>If d is NULL, returns the first registered input audio/video device, if d is non-NULL, returns the next registered input audio/video device after d or NULL if d is the last one. </p>
</div>
</div>
<a class="anchor" id="a4f4b2a42fa434a3557b96a02ba7cd36a"></a><!-- doxytag: member="avdevice.h::av_input_video_device_next" ref="a4f4b2a42fa434a3557b96a02ba7cd36a" args="(AVInputFormat *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVInputFormat.html">AVInputFormat</a>* <a class="el" href="avdevice_8h.html#a4f4b2a42fa434a3557b96a02ba7cd36a">av_input_video_device_next</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVInputFormat.html">AVInputFormat</a> * </td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Video input devices iterator. </p>
<p>If d is NULL, returns the first registered input audio/video device, if d is non-NULL, returns the next registered input audio/video device after d or NULL if d is the last one. </p>
</div>
</div>
<a class="anchor" id="af79c3b9e53b5631f422f7b92768c5164"></a><!-- doxytag: member="avdevice.h::av_output_audio_device_next" ref="af79c3b9e53b5631f422f7b92768c5164" args="(AVOutputFormat *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a>* <a class="el" href="avdevice_8h.html#af79c3b9e53b5631f422f7b92768c5164">av_output_audio_device_next</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> * </td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Audio output devices iterator. </p>
<p>If d is NULL, returns the first registered output audio/video device, if d is non-NULL, returns the next registered output audio/video device after d or NULL if d is the last one. </p>
</div>
</div>
<a class="anchor" id="a52f3b793ab7b9511521069cf6213ebd2"></a><!-- doxytag: member="avdevice.h::av_output_video_device_next" ref="a52f3b793ab7b9511521069cf6213ebd2" args="(AVOutputFormat *d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a>* <a class="el" href="avdevice_8h.html#a52f3b793ab7b9511521069cf6213ebd2">av_output_video_device_next</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> * </td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Video output devices iterator. </p>
<p>If d is NULL, returns the first registered output audio/video device, if d is non-NULL, returns the next registered output audio/video device after d or NULL if d is the last one. </p>
</div>
</div>
<a class="anchor" id="a62f5a22de09f0bc7fd2380d39ee1bc45"></a><!-- doxytag: member="avdevice.h::avdevice_app_to_dev_control_message" ref="a62f5a22de09f0bc7fd2380d39ee1bc45" args="(struct AVFormatContext *s, enum AVAppToDevMessageType type, void *data, size_t data_size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#a62f5a22de09f0bc7fd2380d39ee1bc45">avdevice_app_to_dev_control_message</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum <a class="el" href="avdevice_8h.html#a16d549a25f11693a06a211f00864fed8">AVAppToDevMessageType</a> </td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>data_size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Send control message from application to device. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>device context. </td></tr>
<tr><td class="paramname">type</td><td>message type. </td></tr>
<tr><td class="paramname">data</td><td>message data. Exact type depends on message type. </td></tr>
<tr><td class="paramname">data_size</td><td>size of message data. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 on success, negative on error. <a class="el" href="group__lavu__error.html#gae4bb6f165973d09584e0ec0f335f69ca">AVERROR(ENOSYS)</a> when device doesn't implement handler of the message. </dd></dl>
</div>
</div>
<a class="anchor" id="af426838f78fb5bcdc2095c4d3162cf6e"></a><!-- doxytag: member="avdevice.h::avdevice_dev_to_app_control_message" ref="af426838f78fb5bcdc2095c4d3162cf6e" args="(struct AVFormatContext *s, enum AVDevToAppMessageType type, void *data, size_t data_size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#af426838f78fb5bcdc2095c4d3162cf6e">avdevice_dev_to_app_control_message</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum <a class="el" href="avdevice_8h.html#ac379d3691ce091da6387a461a158a690">AVDevToAppMessageType</a> </td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>data_size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Send control message from device to application. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>device context. </td></tr>
<tr><td class="paramname">type</td><td>message type. </td></tr>
<tr><td class="paramname">data</td><td>message data. Can be NULL. </td></tr>
<tr><td class="paramname">data_size</td><td>size of message data. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 on success, negative on error. <a class="el" href="group__lavu__error.html#gae4bb6f165973d09584e0ec0f335f69ca">AVERROR(ENOSYS)</a> when application doesn't implement handler of the message. </dd></dl>
</div>
</div>
<a class="anchor" id="af802f1388f3f209cbbc93d9ba983a341"></a><!-- doxytag: member="avdevice.h::avdevice_capabilities_create" ref="af802f1388f3f209cbbc93d9ba983a341" args="(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, AVDictionary **device_options)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341">avdevice_capabilities_create</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> ** </td>
<td class="paramname"><em>caps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVFormatContext.html">AVFormatContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> ** </td>
<td class="paramname"><em>device_options</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize capabilities probing API based on <a class="el" href="structAVOption.html" title="AVOption.">AVOption</a> API. </p>
<p><a class="el" href="avdevice_8h.html#a89c36d6e5698ad7dc2637226e1655dff" title="Free resources created by avdevice_capabilities_create()">avdevice_capabilities_free()</a> must be called when query capabilities API is not used anymore.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">caps</td><td>Device capabilities data. Pointer to a NULL pointer must be passed. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">s</td><td>Context of the device. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">device_options</td><td>An AVDictionary filled with device-private options. On return this parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL. The same options must be passed later to <a class="el" href="group__lavf__encoding.html#ga78d4e734fecb1d2385536e6dd5b7b9f5" title="Allocate the stream private data and write the stream header to an output media file.">avformat_write_header()</a> for output devices or <a class="el" href="group__lavf__decoding.html#ga10a404346c646e4ab58f4ed798baca32" title="Open an input stream and read the header.">avformat_open_input()</a> for input devices, or at any other place that affects device-private options.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 on success, negative otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="a89c36d6e5698ad7dc2637226e1655dff"></a><!-- doxytag: member="avdevice.h::avdevice_capabilities_free" ref="a89c36d6e5698ad7dc2637226e1655dff" args="(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avdevice_8h.html#a89c36d6e5698ad7dc2637226e1655dff">avdevice_capabilities_free</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVDeviceCapabilitiesQuery.html">AVDeviceCapabilitiesQuery</a> ** </td>
<td class="paramname"><em>caps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVFormatContext.html">AVFormatContext</a> * </td>
<td class="paramname"><em>s</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Free resources created by <a class="el" href="avdevice_8h.html#af802f1388f3f209cbbc93d9ba983a341" title="Initialize capabilities probing API based on AVOption API.">avdevice_capabilities_create()</a> </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">caps</td><td>Device capabilities data to be freed. </td></tr>
<tr><td class="paramname">s</td><td>Context of the device. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a4bf9cc38ae904b9104fda1e4def71474"></a><!-- doxytag: member="avdevice.h::avdevice_list_devices" ref="a4bf9cc38ae904b9104fda1e4def71474" args="(struct AVFormatContext *s, AVDeviceInfoList **device_list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474">avdevice_list_devices</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structAVFormatContext.html">AVFormatContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> ** </td>
<td class="paramname"><em>device_list</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>List devices. </p>
<p>Returns available device names and their parameters.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>: Some devices may accept system-dependent device names that cannot be autodetected. The list returned by this function cannot be assumed to be always completed.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">s</td><td>device context. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">device_list</td><td>list of autodetected devices. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of autodetected devices, negative on error. </dd></dl>
</div>
</div>
<a class="anchor" id="a52dcbb2d9ae0f33b7a89548b5a0c87bd"></a><!-- doxytag: member="avdevice.h::avdevice_free_list_devices" ref="a52dcbb2d9ae0f33b7a89548b5a0c87bd" args="(AVDeviceInfoList **device_list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avdevice_8h.html#a52dcbb2d9ae0f33b7a89548b5a0c87bd">avdevice_free_list_devices</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> ** </td>
<td class="paramname"><em>device_list</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convenient function to free result of <a class="el" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474" title="List devices.">avdevice_list_devices()</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">devices</td><td>device list to be freed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a202488c6f1ed7e87b659c7b8df079e50"></a><!-- doxytag: member="avdevice.h::avdevice_list_input_sources" ref="a202488c6f1ed7e87b659c7b8df079e50" args="(struct AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#a202488c6f1ed7e87b659c7b8df079e50">avdevice_list_input_sources</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structAVInputFormat.html">AVInputFormat</a> * </td>
<td class="paramname"><em>device</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>device_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> * </td>
<td class="paramname"><em>device_options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> ** </td>
<td class="paramname"><em>device_list</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>List devices. </p>
<p>Returns available device names and their parameters. These are convinient wrappers for <a class="el" href="avdevice_8h.html#a4bf9cc38ae904b9104fda1e4def71474" title="List devices.">avdevice_list_devices()</a>. Device context is allocated and deallocated internally.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">device</td><td>device format. May be NULL if device name is set. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">device_name</td><td>device name. May be NULL if device format is set. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">device_options</td><td>An AVDictionary filled with device-private options. May be NULL. The same options must be passed later to <a class="el" href="group__lavf__encoding.html#ga78d4e734fecb1d2385536e6dd5b7b9f5" title="Allocate the stream private data and write the stream header to an output media file.">avformat_write_header()</a> for output devices or <a class="el" href="group__lavf__decoding.html#ga10a404346c646e4ab58f4ed798baca32" title="Open an input stream and read the header.">avformat_open_input()</a> for input devices, or at any other place that affects device-private options. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">device_list</td><td>list of autodetected devices </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of autodetected devices, negative on error. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>device argument takes precedence over device_name when both are set. </dd></dl>
</div>
</div>
<a class="anchor" id="a2227616998276fefe5e4221e478d667f"></a><!-- doxytag: member="avdevice.h::avdevice_list_output_sinks" ref="a2227616998276fefe5e4221e478d667f" args="(struct AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avdevice_8h.html#a2227616998276fefe5e4221e478d667f">avdevice_list_output_sinks</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structAVOutputFormat.html">AVOutputFormat</a> * </td>
<td class="paramname"><em>device</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>device_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> * </td>
<td class="paramname"><em>device_options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVDeviceInfoList.html">AVDeviceInfoList</a> ** </td>
<td class="paramname"><em>device_list</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a1362af8ea203781c69bc644179388259"></a><!-- doxytag: member="avdevice.h::av_device_capabilities" ref="a1362af8ea203781c69bc644179388259" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structAVOption.html">AVOption</a> <a class="el" href="avdevice_8h.html#a1362af8ea203781c69bc644179388259">av_device_capabilities</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p><a class="el" href="structAVOption.html" title="AVOption.">AVOption</a> table used by devices to implement device capabilities API. </p>
<p>Should not be used by a user. </p>
</div>
</div>
</div><!-- contents -->
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>