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: libavformat/avio.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="#define-members">Defines</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">libavformat/avio.h File Reference<div class="ingroups"><a class="el" href="group__lavf__io.html">I/O Read/Write</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Buffered I/O operations.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include <stdint.h></code><br/>
<code>#include "<a class="el" href="common_8h_source.html">libavutil/common.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="log_8h_source.html">libavutil/log.h</a>"</code><br/>
<code>#include "<a class="el" href="libavformat_2version_8h_source.html">libavformat/version.h</a>"</code><br/>
</div>
<p><a href="avio_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="structAVIOInterruptCB.html">AVIOInterruptCB</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Callback for checking whether to abort blocking functions. <a href="structAVIOInterruptCB.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="structAVIODirEntry.html">AVIODirEntry</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Describes single entry of the directory. <a href="structAVIODirEntry.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="structAVIODirContext.html">AVIODirContext</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structAVIOContext.html">AVIOContext</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bytestream IO Context. <a href="structAVIOContext.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a03ea0dfa113a05f4843bbfff69e0cd0a">AVIO_SEEKABLE_NORMAL</a>   0x0001</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Seeking works like for a local file. <a href="#a03ea0dfa113a05f4843bbfff69e0cd0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a427ff2a881637b47ee7d7f9e368be63f">AVSEEK_SIZE</a>   0x10000</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Passing this as the "whence" parameter to a seek function causes it to return the filesize without seeking anywhere. <a href="#a427ff2a881637b47ee7d7f9e368be63f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#afc6af68de5304c6cea23a785c1f94cd5">AVSEEK_FORCE</a>   0x20000</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Oring this flag as into the "whence" parameter to a seek function causes it to seek by any means (like reopening and linear reading) or other normally unreasonable means that can be extremely slow. <a href="#afc6af68de5304c6cea23a785c1f94cd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aea3131c92c70177e463538e9a6b4308e">AVIO_FLAG_NONBLOCK</a>   8</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Use non-blocking mode. <a href="#aea3131c92c70177e463538e9a6b4308e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ab48ea445f38c16d407cc56d00be0f6bb">AVIO_FLAG_DIRECT</a>   0x8000</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Use direct mode. <a href="#ab48ea445f38c16d407cc56d00be0f6bb"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">URL open modes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The flags argument to avio_open must be one of the following constants, optionally ORed with other flags. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a21e61cb486bd1588eb7f775998cf8c77">AVIO_FLAG_READ</a>   1</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">read-only <a href="#a21e61cb486bd1588eb7f775998cf8c77"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a5c9308f296545a8f3b7687d277a6dabc">AVIO_FLAG_WRITE</a>   2</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">write-only <a href="#a5c9308f296545a8f3b7687d277a6dabc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aba7dc6a03cfe63d2a7e2c00532007eb2">AVIO_FLAG_READ_WRITE</a>   (<a class="el" href="avio_8h.html#a21e61cb486bd1588eb7f775998cf8c77">AVIO_FLAG_READ</a>|<a class="el" href="avio_8h.html#a5c9308f296545a8f3b7687d277a6dabc">AVIO_FLAG_WRITE</a>)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">read-write pseudo flag <a href="#aba7dc6a03cfe63d2a7e2c00532007eb2"></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="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8fa">AVIODirEntryType</a> { <br/>
  <a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa159374019fec997c911704bc9f4913fc">AVIO_ENTRY_UNKNOWN</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa94369ed08fb8fb538f66d0bc4afb87a0">AVIO_ENTRY_BLOCK_DEVICE</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faaa6fabb2ac2b94287358b30291555f4fe">AVIO_ENTRY_CHARACTER_DEVICE</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faaa4e8174e86d09fd519fdda87dd413ccf">AVIO_ENTRY_DIRECTORY</a>,
<br/>
  <a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa50f1bab52a8e512d72cda10de23919c8">AVIO_ENTRY_NAMED_PIPE</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa9d66503948cd5fb104f78a746c36ad19">AVIO_ENTRY_SYMBOLIC_LINK</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faaef29e40d14ed3f01420981aceb7165d3">AVIO_ENTRY_SOCKET</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faac05d4180a01efe6150b3688b17039a41">AVIO_ENTRY_FILE</a>,
<br/>
  <a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa8b33d9a7f0316f61642a9d20ff1963fd">AVIO_ENTRY_SERVER</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa93302e48d86ab18cdd183499f1d4c144">AVIO_ENTRY_SHARE</a>,
<a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8faa6357c355f9f895a515a8ffd215b5d383">AVIO_ENTRY_WORKGROUP</a>
<br/>
}</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Directory entry types. <a href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8fa">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">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a612d7e4aede364861a728c18383714c2">avio_find_protocol_name</a> (const char *url)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the name of the protocol that will handle the passed URL. <a href="#a612d7e4aede364861a728c18383714c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aa4006f7b803e4d104231734a23b35ab7">avio_check</a> (const char *url, int flags)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url, or a negative value corresponding to an AVERROR code in case of failure. <a href="#aa4006f7b803e4d104231734a23b35ab7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a7bb596b33ba395e488af6c0c21ca00d5">avio_open_dir</a> (<a class="el" href="structAVIODirContext.html">AVIODirContext</a> **s, const char *url, <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **options)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Open directory for reading. <a href="#a7bb596b33ba395e488af6c0c21ca00d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#addb214cfa43621ca164b14d9932af2bb">avio_read_dir</a> (<a class="el" href="structAVIODirContext.html">AVIODirContext</a> *s, <a class="el" href="structAVIODirEntry.html">AVIODirEntry</a> **next)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get next directory entry. <a href="#addb214cfa43621ca164b14d9932af2bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a62ef5c196ebb93427470e098e22268c5">avio_close_dir</a> (<a class="el" href="structAVIODirContext.html">AVIODirContext</a> **s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Close directory. <a href="#a62ef5c196ebb93427470e098e22268c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aa0b5fe2c2243b25f770b1049a710861f">avio_free_directory_entry</a> (<a class="el" href="structAVIODirEntry.html">AVIODirEntry</a> **entry)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Free entry allocated by <a class="el" href="avio_8h.html#addb214cfa43621ca164b14d9932af2bb" title="Get next directory entry.">avio_read_dir()</a>. <a href="#aa0b5fe2c2243b25f770b1049a710861f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a853f5149136a27ffba3207d8520172a5">avio_alloc_context</a> (unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int(*<a class="el" href="avio__reading_8c.html#a3a86bff38e7cb9093d0a32316b73b29c">read_packet</a>)(void *opaque, uint8_t *buf, int buf_size), int(*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate and initialize an <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for buffered I/O. <a href="#a853f5149136a27ffba3207d8520172a5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a1dddee2b73f4dd6512ac9821cf5adc18">avio_w8</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, int b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#acc3626afc6aa3964b75d02811457164e">avio_write</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, const unsigned char *buf, int size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a09510d3318eda871f8b91693e2774425">avio_wl64</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, uint64_t val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a9a88d79a1fc983c04a4e009b85361d54">avio_wb64</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, uint64_t val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a16f2ba75f978a70f16dc55e2393f3439">avio_wl32</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a1f2b9ee1bde6c6982072edbe929b47ea">avio_wb32</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aa1ceef83bd4b74280f51eba321f70273">avio_wl24</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a81a5cfb941abfe2b83a30be4f86ad06d">avio_wb24</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a1ba843eb6d34706bbdd177a4256e71e2">avio_wl16</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a21c2d7b7ddd7f31d24d278f8b3281ec3">avio_wb16</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a1d2113a3b0d7015c415897d92bd441f3">avio_put_str</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, const char *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Write a NULL-terminated string. <a href="#a1d2113a3b0d7015c415897d92bd441f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a4ff718da93c106f7ba48de1cb6b010c6">avio_put_str16le</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, const char *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert an UTF-8 string to UTF-16LE and write it. <a href="#a4ff718da93c106f7ba48de1cb6b010c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#acf3a933e43bd56dcf671a6bc0c897bda">avio_put_str16be</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, const char *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert an UTF-8 string to UTF-16BE and write it. <a href="#acf3a933e43bd56dcf671a6bc0c897bda"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a03e23bf0144030961c34e803c71f614f">avio_seek</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, int64_t offset, int whence)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">fseek() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. <a href="#a03e23bf0144030961c34e803c71f614f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#aa22e02f986ea8a8dc018f9615af27eea">avio_skip</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, int64_t offset)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Skip given number of bytes forward. <a href="#aa22e02f986ea8a8dc018f9615af27eea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static av_always_inline int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a63157a668f29b8f5a89f00bc24838b8e">avio_tell</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">ftell() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. <a href="#a63157a668f29b8f5a89f00bc24838b8e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a375f057e315dd2273579555128a070fb">avio_size</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the filesize. <a href="#a375f057e315dd2273579555128a070fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a4db704ed3d00a4be632dad1585d01d92">avio_feof</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">feof() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. <a href="#a4db704ed3d00a4be632dad1585d01d92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a79127cec97b09a308b549253119ff38f">avio_printf</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, const char *fmt,...) <a class="el" href="attributes_8h.html#a4b078d4b8e02c0f452ee1dcaa7d983d3">av_printf_format</a>(2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int void </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a60ed6497a3fed8be0b3b688142e8f54c">avio_flush</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Force flushing of buffered data. <a href="#a60ed6497a3fed8be0b3b688142e8f54c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#abb4e58439be0bff0dc2e2974ee5fb6a3">avio_read</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, unsigned char *buf, int size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Read size bytes from <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> into buf. <a href="#abb4e58439be0bff0dc2e2974ee5fb6a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#abeee0414e5f2ce5b150cf9c5694a2e4f">avio_get_str</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *pb, int maxlen, char *buf, int buflen)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Read a string from pb into buf. <a href="#abeee0414e5f2ce5b150cf9c5694a2e4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a39507bbc53328eae98ac7d683078fcf1">avio_get_str16le</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *pb, int maxlen, char *buf, int buflen)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Read a UTF-16 string from pb and convert it to UTF-8. <a href="#a39507bbc53328eae98ac7d683078fcf1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a02be750099c47406eb68b50d75a01bdd">avio_get_str16be</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *pb, int maxlen, char *buf, int buflen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a371a670112abc5f3e15bc570da076301">avio_open</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> **s, const char *url, int flags)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create and initialize a <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for accessing the resource indicated by url. <a href="#a371a670112abc5f3e15bc570da076301"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ade8a63980569494c99593ebf0d1e891b">avio_open2</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> **s, const char *url, int flags, const <a class="el" href="structAVIOInterruptCB.html">AVIOInterruptCB</a> *int_cb, <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **options)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create and initialize a <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for accessing the resource indicated by url. <a href="#ade8a63980569494c99593ebf0d1e891b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ad71cada104a5e4365d35d45669ea03ca">avio_close</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the resource accessed by the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> s and free it. <a href="#ad71cada104a5e4365d35d45669ea03ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ae118a1f37f1e48617609ead9910aac15">avio_closep</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> **s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the resource accessed by the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> *s, free it and set the pointer pointing to it to NULL. <a href="#ae118a1f37f1e48617609ead9910aac15"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#adb5259ad07633518173eaa47fe6575e2">avio_open_dyn_buf</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> **s)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a write only memory stream. <a href="#adb5259ad07633518173eaa47fe6575e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a8faed62ce72e7411cbea2356494af8ce">avio_close_dyn_buf</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s, uint8_t **pbuffer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the written size and a pointer to the buffer. <a href="#a8faed62ce72e7411cbea2356494af8ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a50fda7362db877e8b9e493650c9e3fb3">avio_enum_protocols</a> (void **opaque, int output)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate through names of available protocols. <a href="#a50fda7362db877e8b9e493650c9e3fb3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a1ac23b54d5f5bbfee4353978d313e472">avio_pause</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *h, int pause)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pause and resume playing - only meaningful if using a network streaming protocol (e.g. <a href="#a1ac23b54d5f5bbfee4353978d313e472"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#adbdec54e1897c66b8c8bc43ce0063187">avio_seek_time</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *h, int stream_index, int64_t timestamp, int flags)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Seek to a given timestamp relative to some component stream. <a href="#adbdec54e1897c66b8c8bc43ce0063187"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ae8ad73c8ea7e4a2a541e134f762793a6">avio_read_to_bprint</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *h, struct AVBPrint *pb, size_t max_size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Read contents of h into print buffer, up to max_size bytes, or up to EOF. <a href="#ae8ad73c8ea7e4a2a541e134f762793a6"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Functions for reading from AVIOContext</div></td></tr>
<tr><td colspan="2"><div class="groupText"><dl class="note"><dt><b>Note:</b></dt><dd>return 0 if EOF, so you cannot use it if EOF handling is necessary </dd></dl>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#af0d12eeb9d701134d971b91b4083bb43">avio_r8</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a71a15b7c123789a03115af82021698fe">avio_rl16</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ac3229b4447938b646e4ecbf25a594e8a">avio_rl24</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#abc91c5452c4d7b5da84021be3a9a3d70">avio_rl32</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#af60c7d8fdabc3667ead1fffd2fac7ad5">avio_rl64</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a383f5f7f7df5b6cc9b7949713a43cb37">avio_rb16</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#ae5f28c2379d309467db446d2fa03269b">avio_rb24</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#af089361fd70426624d19d436a10f87ad">avio_rb32</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="avio_8h.html#a14d7da25344458b5f3aad11edb0f4918">avio_rb64</a> (<a class="el" href="structAVIOContext.html">AVIOContext</a> *s)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Buffered I/O operations. </p>
<p>Definition in file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a03ea0dfa113a05f4843bbfff69e0cd0a"></a><!-- doxytag: member="avio.h::AVIO_SEEKABLE_NORMAL" ref="a03ea0dfa113a05f4843bbfff69e0cd0a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#a03ea0dfa113a05f4843bbfff69e0cd0a">AVIO_SEEKABLE_NORMAL</a>   0x0001</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Seeking works like for a local file. </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00037">37</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="a427ff2a881637b47ee7d7f9e368be63f"></a><!-- doxytag: member="avio.h::AVSEEK_SIZE" ref="a427ff2a881637b47ee7d7f9e368be63f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#a427ff2a881637b47ee7d7f9e368be63f">AVSEEK_SIZE</a>   0x10000</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Passing this as the "whence" parameter to a seek function causes it to return the filesize without seeking anywhere. </p>
<p>Supporting this is optional. If it is not supported then the seek function will return <0. </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00339">339</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="afc6af68de5304c6cea23a785c1f94cd5"></a><!-- doxytag: member="avio.h::AVSEEK_FORCE" ref="afc6af68de5304c6cea23a785c1f94cd5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#afc6af68de5304c6cea23a785c1f94cd5">AVSEEK_FORCE</a>   0x20000</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Oring this flag as into the "whence" parameter to a seek function causes it to seek by any means (like reopening and linear reading) or other normally unreasonable means that can be extremely slow. </p>
<p>This may be ignored by the seek code. </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00347">347</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="a21e61cb486bd1588eb7f775998cf8c77"></a><!-- doxytag: member="avio.h::AVIO_FLAG_READ" ref="a21e61cb486bd1588eb7f775998cf8c77" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#a21e61cb486bd1588eb7f775998cf8c77">AVIO_FLAG_READ</a>   1</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>read-only </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00460">460</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5c9308f296545a8f3b7687d277a6dabc"></a><!-- doxytag: member="avio.h::AVIO_FLAG_WRITE" ref="a5c9308f296545a8f3b7687d277a6dabc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#a5c9308f296545a8f3b7687d277a6dabc">AVIO_FLAG_WRITE</a>   2</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>write-only </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a143">muxing.c</a>, <a class="el" href="remuxing_8c-example.html#a37">remuxing.c</a>, <a class="el" href="transcode_aac_8c-example.html#a17">transcode_aac.c</a>, and <a class="el" href="transcoding_8c-example.html#a59">transcoding.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00461">461</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
<p>Referenced by <a class="el" href="muxing_8c_source.html#l00556">main()</a>, and <a class="el" href="transcode__aac_8c_source.html#l00120">open_output_file()</a>.</p>
</div>
</div>
<a class="anchor" id="aba7dc6a03cfe63d2a7e2c00532007eb2"></a><!-- doxytag: member="avio.h::AVIO_FLAG_READ_WRITE" ref="aba7dc6a03cfe63d2a7e2c00532007eb2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#aba7dc6a03cfe63d2a7e2c00532007eb2">AVIO_FLAG_READ_WRITE</a>   (<a class="el" href="avio_8h.html#a21e61cb486bd1588eb7f775998cf8c77">AVIO_FLAG_READ</a>|<a class="el" href="avio_8h.html#a5c9308f296545a8f3b7687d277a6dabc">AVIO_FLAG_WRITE</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>read-write pseudo flag </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00462">462</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="aea3131c92c70177e463538e9a6b4308e"></a><!-- doxytag: member="avio.h::AVIO_FLAG_NONBLOCK" ref="aea3131c92c70177e463538e9a6b4308e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#aea3131c92c70177e463538e9a6b4308e">AVIO_FLAG_NONBLOCK</a>   8</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Use non-blocking mode. </p>
<p>If this flag is set, operations on the context will return <a class="el" href="group__lavu__error.html#gae4bb6f165973d09584e0ec0f335f69ca">AVERROR(EAGAIN)</a> if they can not be performed immediately. If this flag is not set, operations on the context will never return <a class="el" href="group__lavu__error.html#gae4bb6f165973d09584e0ec0f335f69ca">AVERROR(EAGAIN)</a>. Note that this flag does not affect the opening/connecting of the context. Connecting a protocol will always block if necessary (e.g. on network protocols) but never hang (e.g. on busy devices). Warning: non-blocking protocols is work-in-progress; this flag may be silently ignored. </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00479">479</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab48ea445f38c16d407cc56d00be0f6bb"></a><!-- doxytag: member="avio.h::AVIO_FLAG_DIRECT" ref="ab48ea445f38c16d407cc56d00be0f6bb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="avio_8h.html#ab48ea445f38c16d407cc56d00be0f6bb">AVIO_FLAG_DIRECT</a>   0x8000</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Use direct mode. </p>
<p>avio_read and avio_write should if possible be satisfied directly instead of going through a buffer, and avio_seek will always call the underlying seek function directly. </p>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00487">487</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8fa"></a><!-- doxytag: member="avio.h::AVIODirEntryType" ref="ae8a759e02fd6f14d13511b0e2acbf8fa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="avio_8h.html#ae8a759e02fd6f14d13511b0e2acbf8fa">AVIODirEntryType</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Directory entry types. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa159374019fec997c911704bc9f4913fc"></a><!-- doxytag: member="AVIO_ENTRY_UNKNOWN" ref="ae8a759e02fd6f14d13511b0e2acbf8faa159374019fec997c911704bc9f4913fc" args="" -->AVIO_ENTRY_UNKNOWN</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa94369ed08fb8fb538f66d0bc4afb87a0"></a><!-- doxytag: member="AVIO_ENTRY_BLOCK_DEVICE" ref="ae8a759e02fd6f14d13511b0e2acbf8faa94369ed08fb8fb538f66d0bc4afb87a0" args="" -->AVIO_ENTRY_BLOCK_DEVICE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faaa6fabb2ac2b94287358b30291555f4fe"></a><!-- doxytag: member="AVIO_ENTRY_CHARACTER_DEVICE" ref="ae8a759e02fd6f14d13511b0e2acbf8faaa6fabb2ac2b94287358b30291555f4fe" args="" -->AVIO_ENTRY_CHARACTER_DEVICE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faaa4e8174e86d09fd519fdda87dd413ccf"></a><!-- doxytag: member="AVIO_ENTRY_DIRECTORY" ref="ae8a759e02fd6f14d13511b0e2acbf8faaa4e8174e86d09fd519fdda87dd413ccf" args="" -->AVIO_ENTRY_DIRECTORY</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa50f1bab52a8e512d72cda10de23919c8"></a><!-- doxytag: member="AVIO_ENTRY_NAMED_PIPE" ref="ae8a759e02fd6f14d13511b0e2acbf8faa50f1bab52a8e512d72cda10de23919c8" args="" -->AVIO_ENTRY_NAMED_PIPE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa9d66503948cd5fb104f78a746c36ad19"></a><!-- doxytag: member="AVIO_ENTRY_SYMBOLIC_LINK" ref="ae8a759e02fd6f14d13511b0e2acbf8faa9d66503948cd5fb104f78a746c36ad19" args="" -->AVIO_ENTRY_SYMBOLIC_LINK</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faaef29e40d14ed3f01420981aceb7165d3"></a><!-- doxytag: member="AVIO_ENTRY_SOCKET" ref="ae8a759e02fd6f14d13511b0e2acbf8faaef29e40d14ed3f01420981aceb7165d3" args="" -->AVIO_ENTRY_SOCKET</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faac05d4180a01efe6150b3688b17039a41"></a><!-- doxytag: member="AVIO_ENTRY_FILE" ref="ae8a759e02fd6f14d13511b0e2acbf8faac05d4180a01efe6150b3688b17039a41" args="" -->AVIO_ENTRY_FILE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa8b33d9a7f0316f61642a9d20ff1963fd"></a><!-- doxytag: member="AVIO_ENTRY_SERVER" ref="ae8a759e02fd6f14d13511b0e2acbf8faa8b33d9a7f0316f61642a9d20ff1963fd" args="" -->AVIO_ENTRY_SERVER</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa93302e48d86ab18cdd183499f1d4c144"></a><!-- doxytag: member="AVIO_ENTRY_SHARE" ref="ae8a759e02fd6f14d13511b0e2acbf8faa93302e48d86ab18cdd183499f1d4c144" args="" -->AVIO_ENTRY_SHARE</em> </td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ae8a759e02fd6f14d13511b0e2acbf8faa6357c355f9f895a515a8ffd215b5d383"></a><!-- doxytag: member="AVIO_ENTRY_WORKGROUP" ref="ae8a759e02fd6f14d13511b0e2acbf8faa6357c355f9f895a515a8ffd215b5d383" args="" -->AVIO_ENTRY_WORKGROUP</em> </td><td>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00058">58</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a612d7e4aede364861a728c18383714c2"></a><!-- doxytag: member="avio.h::avio_find_protocol_name" ref="a612d7e4aede364861a728c18383714c2" args="(const char *url)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="avio_8h.html#a612d7e4aede364861a728c18383714c2">avio_find_protocol_name</a> </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>url</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the name of the protocol that will handle the passed URL. </p>
<p>NULL is returned if no protocol could be found for the given URL.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Name of the protocol or NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="aa4006f7b803e4d104231734a23b35ab7"></a><!-- doxytag: member="avio.h::avio_check" ref="aa4006f7b803e4d104231734a23b35ab7" args="(const char *url, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#aa4006f7b803e4d104231734a23b35ab7">avio_check</a> </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url, or a negative value corresponding to an AVERROR code in case of failure. </p>
<p>The returned access flags are masked by the value in flags.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>This function is intrinsically unsafe, in the sense that the checked resource may change its existence or permission status from one call to another. Thus you should not trust the returned value, unless you are sure that no other processes are accessing the checked resource. </dd></dl>
</div>
</div>
<a class="anchor" id="a7bb596b33ba395e488af6c0c21ca00d5"></a><!-- doxytag: member="avio.h::avio_open_dir" ref="a7bb596b33ba395e488af6c0c21ca00d5" args="(AVIODirContext **s, const char *url, AVDictionary **options)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a7bb596b33ba395e488af6c0c21ca00d5">avio_open_dir</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIODirContext.html">AVIODirContext</a> ** </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>url</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>options</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Open directory for reading. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>directory read context. Pointer to a NULL pointer must be passed. </td></tr>
<tr><td class="paramname">url</td><td>directory to be listed. </td></tr>
<tr><td class="paramname">options</td><td>A dictionary filled with protocol-private options. On return this parameter will be destroyed and replaced with a dictionary containing options that were not found. May be NULL. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>=0 on success or negative on error. </dd></dl>
<p>Referenced by <a class="el" href="avio__list__dir_8c_source.html#l00057">main()</a>.</p>
</div>
</div>
<a class="anchor" id="addb214cfa43621ca164b14d9932af2bb"></a><!-- doxytag: member="avio.h::avio_read_dir" ref="addb214cfa43621ca164b14d9932af2bb" args="(AVIODirContext *s, AVIODirEntry **next)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#addb214cfa43621ca164b14d9932af2bb">avio_read_dir</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIODirContext.html">AVIODirContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structAVIODirEntry.html">AVIODirEntry</a> ** </td>
<td class="paramname"><em>next</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get next directory entry. </p>
<p>Returned entry must be freed with <a class="el" href="avio_8h.html#aa0b5fe2c2243b25f770b1049a710861f" title="Free entry allocated by avio_read_dir().">avio_free_directory_entry()</a>. In particular it may outlive <a class="el" href="structAVIODirContext.html">AVIODirContext</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">s</td><td>directory read context. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">next</td><td>next entry or NULL when no more entries. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>=0 on success or negative on error. End of list is not considered an error. </dd></dl>
<p>Referenced by <a class="el" href="avio__list__dir_8c_source.html#l00057">main()</a>.</p>
</div>
</div>
<a class="anchor" id="a62ef5c196ebb93427470e098e22268c5"></a><!-- doxytag: member="avio.h::avio_close_dir" ref="a62ef5c196ebb93427470e098e22268c5" args="(AVIODirContext **s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a62ef5c196ebb93427470e098e22268c5">avio_close_dir</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIODirContext.html">AVIODirContext</a> ** </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Close directory. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Entries created using <a class="el" href="avio_8h.html#addb214cfa43621ca164b14d9932af2bb" title="Get next directory entry.">avio_read_dir()</a> are not deleted and must be freeded with <a class="el" href="avio_8h.html#aa0b5fe2c2243b25f770b1049a710861f" title="Free entry allocated by avio_read_dir().">avio_free_directory_entry()</a>.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>directory read context. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>=0 on success or negative on error. </dd></dl>
<p>Referenced by <a class="el" href="avio__list__dir_8c_source.html#l00057">main()</a>.</p>
</div>
</div>
<a class="anchor" id="aa0b5fe2c2243b25f770b1049a710861f"></a><!-- doxytag: member="avio.h::avio_free_directory_entry" ref="aa0b5fe2c2243b25f770b1049a710861f" args="(AVIODirEntry **entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#aa0b5fe2c2243b25f770b1049a710861f">avio_free_directory_entry</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIODirEntry.html">AVIODirEntry</a> ** </td>
<td class="paramname"><em>entry</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Free entry allocated by <a class="el" href="avio_8h.html#addb214cfa43621ca164b14d9932af2bb" title="Get next directory entry.">avio_read_dir()</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>entry to be freed. </td></tr>
</table>
</dd>
</dl>
<p>Referenced by <a class="el" href="avio__list__dir_8c_source.html#l00057">main()</a>.</p>
</div>
</div>
<a class="anchor" id="a853f5149136a27ffba3207d8520172a5"></a><!-- doxytag: member="avio.h::avio_alloc_context" ref="a853f5149136a27ffba3207d8520172a5" args="(unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int(*read_packet)(void *opaque, uint8_t *buf, int buf_size), int(*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structAVIOContext.html">AVIOContext</a>* <a class="el" href="avio_8h.html#a853f5149136a27ffba3207d8520172a5">avio_alloc_context</a> </td>
<td>(</td>
<td class="paramtype">unsigned char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>buffer_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>write_flag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>opaque</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int(*)(void *opaque, uint8_t *buf, int buf_size) </td>
<td class="paramname"><em>read_packet</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int(*)(void *opaque, uint8_t *buf, int buf_size) </td>
<td class="paramname"><em>write_packet</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t(*)(void *opaque, int64_t offset, int whence) </td>
<td class="paramname"><em>seek</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate and initialize an <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for buffered I/O. </p>
<p>It must be later freed with <a class="el" href="group__lavu__mem.html#ga0c9096f498624c525aa2315b8a20c411" title="Free a memory block which has been allocated with av_malloc(z)() or av_realloc().">av_free()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>Memory block for input/output operations via <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. The buffer must be allocated with <a class="el" href="group__lavu__mem.html#ga9722446c5e310ffedfaac9489864796d" title="Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...">av_malloc()</a> and friends. It may be freed and replaced with a new buffer by libavformat. <a class="el" href="structAVIOContext.html#a901e8fd2b978d40957c4ed0b77c2daf0" title="Start of the buffer.">AVIOContext.buffer</a> holds the buffer currently in use, which must be later freed with <a class="el" href="group__lavu__mem.html#ga0c9096f498624c525aa2315b8a20c411" title="Free a memory block which has been allocated with av_malloc(z)() or av_realloc().">av_free()</a>. </td></tr>
<tr><td class="paramname">buffer_size</td><td>The buffer size is very important for performance. For protocols with fixed blocksize it should be set to this blocksize. For others a typical size is a cache page, e.g. 4kb. </td></tr>
<tr><td class="paramname">write_flag</td><td>Set to 1 if the buffer should be writable, 0 otherwise. </td></tr>
<tr><td class="paramname">opaque</td><td>An opaque pointer to user-specific data. </td></tr>
<tr><td class="paramname">read_packet</td><td>A function for refilling the buffer, may be NULL. </td></tr>
<tr><td class="paramname">write_packet</td><td>A function for writing the buffer contents, may be NULL. The function may not change the input buffers content. </td></tr>
<tr><td class="paramname">seek</td><td>A function for seeking to specified byte position, may be NULL.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Allocated <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> or NULL on failure. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="avio_reading_8c-example.html#a14">avio_reading.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="avio__reading_8c_source.html#l00057">main()</a>.</p>
</div>
</div>
<a class="anchor" id="a1dddee2b73f4dd6512ac9821cf5adc18"></a><!-- doxytag: member="avio.h::avio_w8" ref="a1dddee2b73f4dd6512ac9821cf5adc18" args="(AVIOContext *s, int b)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a1dddee2b73f4dd6512ac9821cf5adc18">avio_w8</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>b</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="acc3626afc6aa3964b75d02811457164e"></a><!-- doxytag: member="avio.h::avio_write" ref="acc3626afc6aa3964b75d02811457164e" args="(AVIOContext *s, const unsigned char *buf, int size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#acc3626afc6aa3964b75d02811457164e">avio_write</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a09510d3318eda871f8b91693e2774425"></a><!-- doxytag: member="avio.h::avio_wl64" ref="a09510d3318eda871f8b91693e2774425" args="(AVIOContext *s, uint64_t val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a09510d3318eda871f8b91693e2774425">avio_wl64</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a9a88d79a1fc983c04a4e009b85361d54"></a><!-- doxytag: member="avio.h::avio_wb64" ref="a9a88d79a1fc983c04a4e009b85361d54" args="(AVIOContext *s, uint64_t val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a9a88d79a1fc983c04a4e009b85361d54">avio_wb64</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a16f2ba75f978a70f16dc55e2393f3439"></a><!-- doxytag: member="avio.h::avio_wl32" ref="a16f2ba75f978a70f16dc55e2393f3439" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a16f2ba75f978a70f16dc55e2393f3439">avio_wl32</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a1f2b9ee1bde6c6982072edbe929b47ea"></a><!-- doxytag: member="avio.h::avio_wb32" ref="a1f2b9ee1bde6c6982072edbe929b47ea" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a1f2b9ee1bde6c6982072edbe929b47ea">avio_wb32</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="aa1ceef83bd4b74280f51eba321f70273"></a><!-- doxytag: member="avio.h::avio_wl24" ref="aa1ceef83bd4b74280f51eba321f70273" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#aa1ceef83bd4b74280f51eba321f70273">avio_wl24</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a81a5cfb941abfe2b83a30be4f86ad06d"></a><!-- doxytag: member="avio.h::avio_wb24" ref="a81a5cfb941abfe2b83a30be4f86ad06d" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a81a5cfb941abfe2b83a30be4f86ad06d">avio_wb24</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a1ba843eb6d34706bbdd177a4256e71e2"></a><!-- doxytag: member="avio.h::avio_wl16" ref="a1ba843eb6d34706bbdd177a4256e71e2" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a1ba843eb6d34706bbdd177a4256e71e2">avio_wl16</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a21c2d7b7ddd7f31d24d278f8b3281ec3"></a><!-- doxytag: member="avio.h::avio_wb16" ref="a21c2d7b7ddd7f31d24d278f8b3281ec3" args="(AVIOContext *s, unsigned int val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="avio_8h.html#a21c2d7b7ddd7f31d24d278f8b3281ec3">avio_wb16</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>val</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a1d2113a3b0d7015c415897d92bd441f3"></a><!-- doxytag: member="avio.h::avio_put_str" ref="a1d2113a3b0d7015c415897d92bd441f3" args="(AVIOContext *s, const char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a1d2113a3b0d7015c415897d92bd441f3">avio_put_str</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>str</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write a NULL-terminated string. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written. </dd></dl>
</div>
</div>
<a class="anchor" id="a4ff718da93c106f7ba48de1cb6b010c6"></a><!-- doxytag: member="avio.h::avio_put_str16le" ref="a4ff718da93c106f7ba48de1cb6b010c6" args="(AVIOContext *s, const char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a4ff718da93c106f7ba48de1cb6b010c6">avio_put_str16le</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>str</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an UTF-8 string to UTF-16LE and write it. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> </td></tr>
<tr><td class="paramname">str</td><td>NULL-terminated UTF-8 string</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written. </dd></dl>
</div>
</div>
<a class="anchor" id="acf3a933e43bd56dcf671a6bc0c897bda"></a><!-- doxytag: member="avio.h::avio_put_str16be" ref="acf3a933e43bd56dcf671a6bc0c897bda" args="(AVIOContext *s, const char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#acf3a933e43bd56dcf671a6bc0c897bda">avio_put_str16be</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>str</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an UTF-8 string to UTF-16BE and write it. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> </td></tr>
<tr><td class="paramname">str</td><td>NULL-terminated UTF-8 string</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written. </dd></dl>
</div>
</div>
<a class="anchor" id="a03e23bf0144030961c34e803c71f614f"></a><!-- doxytag: member="avio.h::avio_seek" ref="a03e23bf0144030961c34e803c71f614f" args="(AVIOContext *s, int64_t offset, int whence)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="avio_8h.html#a03e23bf0144030961c34e803c71f614f">avio_seek</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>whence</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>fseek() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>new position or AVERROR. </dd></dl>
<p>Referenced by <a class="el" href="avio_8h_source.html#l00365">avio_tell()</a>.</p>
</div>
</div>
<a class="anchor" id="aa22e02f986ea8a8dc018f9615af27eea"></a><!-- doxytag: member="avio.h::avio_skip" ref="aa22e02f986ea8a8dc018f9615af27eea" args="(AVIOContext *s, int64_t offset)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="avio_8h.html#aa22e02f986ea8a8dc018f9615af27eea">avio_skip</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>offset</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Skip given number of bytes forward. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>new position or AVERROR. </dd></dl>
</div>
</div>
<a class="anchor" id="a63157a668f29b8f5a89f00bc24838b8e"></a><!-- doxytag: member="avio.h::avio_tell" ref="a63157a668f29b8f5a89f00bc24838b8e" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static av_always_inline int64_t <a class="el" href="avio_8h.html#a63157a668f29b8f5a89f00bc24838b8e">avio_tell</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>ftell() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>position or AVERROR. </dd></dl>
<p>Definition at line <a class="el" href="avio_8h_source.html#l00365">365</a> of file <a class="el" href="avio_8h_source.html">avio.h</a>.</p>
</div>
</div>
<a class="anchor" id="a375f057e315dd2273579555128a070fb"></a><!-- doxytag: member="avio.h::avio_size" ref="a375f057e315dd2273579555128a070fb" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="avio_8h.html#a375f057e315dd2273579555128a070fb">avio_size</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Get the filesize. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>filesize or AVERROR </dd></dl>
</div>
</div>
<a class="anchor" id="a4db704ed3d00a4be632dad1585d01d92"></a><!-- doxytag: member="avio.h::avio_feof" ref="a4db704ed3d00a4be632dad1585d01d92" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a4db704ed3d00a4be632dad1585d01d92">avio_feof</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>feof() equivalent for <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero if and only if end of file </dd></dl>
</div>
</div>
<a class="anchor" id="a79127cec97b09a308b549253119ff38f"></a><!-- doxytag: member="avio.h::avio_printf" ref="a79127cec97b09a308b549253119ff38f" args="(AVIOContext *s, const char *fmt,...) av_printf_format(2" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a79127cec97b09a308b549253119ff38f">avio_printf</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"><em>...</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="warning"><dt><b>Warning:</b></dt><dd>currently size is limited </dd></dl>
</div>
</div>
<a class="anchor" id="a60ed6497a3fed8be0b3b688142e8f54c"></a><!-- doxytag: member="avio.h::avio_flush" ref="a60ed6497a3fed8be0b3b688142e8f54c" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int void <a class="el" href="avio_8h.html#a60ed6497a3fed8be0b3b688142e8f54c">avio_flush</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Force flushing of buffered data. </p>
<p>For write streams, force the buffered data to be immediately written to the output, without to wait to fill the internal buffer.</p>
<p>For read streams, discard all currently buffered data, and advance the reported file position to that of the underlying stream. This does not read new data, and does not perform any seeks. </p>
</div>
</div>
<a class="anchor" id="abb4e58439be0bff0dc2e2974ee5fb6a3"></a><!-- doxytag: member="avio.h::avio_read" ref="abb4e58439be0bff0dc2e2974ee5fb6a3" args="(AVIOContext *s, unsigned char *buf, int size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#abb4e58439be0bff0dc2e2974ee5fb6a3">avio_read</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read size bytes from <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> into buf. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes read or AVERROR </dd></dl>
</div>
</div>
<a class="anchor" id="af0d12eeb9d701134d971b91b4083bb43"></a><!-- doxytag: member="avio.h::avio_r8" ref="af0d12eeb9d701134d971b91b4083bb43" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#af0d12eeb9d701134d971b91b4083bb43">avio_r8</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a71a15b7c123789a03115af82021698fe"></a><!-- doxytag: member="avio.h::avio_rl16" ref="a71a15b7c123789a03115af82021698fe" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#a71a15b7c123789a03115af82021698fe">avio_rl16</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ac3229b4447938b646e4ecbf25a594e8a"></a><!-- doxytag: member="avio.h::avio_rl24" ref="ac3229b4447938b646e4ecbf25a594e8a" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#ac3229b4447938b646e4ecbf25a594e8a">avio_rl24</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="abc91c5452c4d7b5da84021be3a9a3d70"></a><!-- doxytag: member="avio.h::avio_rl32" ref="abc91c5452c4d7b5da84021be3a9a3d70" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#abc91c5452c4d7b5da84021be3a9a3d70">avio_rl32</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="af60c7d8fdabc3667ead1fffd2fac7ad5"></a><!-- doxytag: member="avio.h::avio_rl64" ref="af60c7d8fdabc3667ead1fffd2fac7ad5" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t <a class="el" href="avio_8h.html#af60c7d8fdabc3667ead1fffd2fac7ad5">avio_rl64</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a383f5f7f7df5b6cc9b7949713a43cb37"></a><!-- doxytag: member="avio.h::avio_rb16" ref="a383f5f7f7df5b6cc9b7949713a43cb37" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#a383f5f7f7df5b6cc9b7949713a43cb37">avio_rb16</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="ae5f28c2379d309467db446d2fa03269b"></a><!-- doxytag: member="avio.h::avio_rb24" ref="ae5f28c2379d309467db446d2fa03269b" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#ae5f28c2379d309467db446d2fa03269b">avio_rb24</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="af089361fd70426624d19d436a10f87ad"></a><!-- doxytag: member="avio.h::avio_rb32" ref="af089361fd70426624d19d436a10f87ad" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="avio_8h.html#af089361fd70426624d19d436a10f87ad">avio_rb32</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a14d7da25344458b5f3aad11edb0f4918"></a><!-- doxytag: member="avio.h::avio_rb64" ref="a14d7da25344458b5f3aad11edb0f4918" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t <a class="el" href="avio_8h.html#a14d7da25344458b5f3aad11edb0f4918">avio_rb64</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="abeee0414e5f2ce5b150cf9c5694a2e4f"></a><!-- doxytag: member="avio.h::avio_get_str" ref="abeee0414e5f2ce5b150cf9c5694a2e4f" args="(AVIOContext *pb, int maxlen, char *buf, int buflen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#abeee0414e5f2ce5b150cf9c5694a2e4f">avio_get_str</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>pb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>maxlen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>buflen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read a string from pb into buf. </p>
<p>The reading will terminate when either a NULL character was encountered, maxlen bytes have been read, or nothing more can be read from pb. The result is guaranteed to be NULL-terminated, it will be truncated if buf is too small. Note that the string is not interpreted or validated in any way, it might get truncated in the middle of a sequence for multi-byte encodings.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes read (is always <= maxlen). If reading ends on EOF or error, the return value will be one more than bytes actually read. </dd></dl>
</div>
</div>
<a class="anchor" id="a39507bbc53328eae98ac7d683078fcf1"></a><!-- doxytag: member="avio.h::avio_get_str16le" ref="a39507bbc53328eae98ac7d683078fcf1" args="(AVIOContext *pb, int maxlen, char *buf, int buflen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a39507bbc53328eae98ac7d683078fcf1">avio_get_str16le</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>pb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>maxlen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>buflen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read a UTF-16 string from pb and convert it to UTF-8. </p>
<p>The reading will terminate when either a null or invalid character was encountered or maxlen bytes have been read. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes read (is always <= maxlen) </dd></dl>
</div>
</div>
<a class="anchor" id="a02be750099c47406eb68b50d75a01bdd"></a><!-- doxytag: member="avio.h::avio_get_str16be" ref="a02be750099c47406eb68b50d75a01bdd" args="(AVIOContext *pb, int maxlen, char *buf, int buflen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a02be750099c47406eb68b50d75a01bdd">avio_get_str16be</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>pb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>maxlen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>buflen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a371a670112abc5f3e15bc570da076301"></a><!-- doxytag: member="avio.h::avio_open" ref="a371a670112abc5f3e15bc570da076301" args="(AVIOContext **s, const char *url, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a371a670112abc5f3e15bc570da076301">avio_open</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> ** </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Create and initialize a <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for accessing the resource indicated by url. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>When the resource indicated by url has been opened in read+write mode, the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> can be used only for writing.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>Used to return the pointer to the created <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. In case of failure the pointed to value is set to NULL. </td></tr>
<tr><td class="paramname">url</td><td>resource to access </td></tr>
<tr><td class="paramname">flags</td><td>flags which control how the resource indicated by url is to be opened </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 in case of success, a negative value corresponding to an AVERROR code in case of failure </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a141">muxing.c</a>, <a class="el" href="remuxing_8c-example.html#a36">remuxing.c</a>, <a class="el" href="transcode_aac_8c-example.html#a16">transcode_aac.c</a>, and <a class="el" href="transcoding_8c-example.html#a57">transcoding.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="muxing_8c_source.html#l00556">main()</a>, and <a class="el" href="transcode__aac_8c_source.html#l00120">open_output_file()</a>.</p>
</div>
</div>
<a class="anchor" id="ade8a63980569494c99593ebf0d1e891b"></a><!-- doxytag: member="avio.h::avio_open2" ref="ade8a63980569494c99593ebf0d1e891b" args="(AVIOContext **s, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#ade8a63980569494c99593ebf0d1e891b">avio_open2</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> ** </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structAVIOInterruptCB.html">AVIOInterruptCB</a> * </td>
<td class="paramname"><em>int_cb</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>options</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Create and initialize a <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> for accessing the resource indicated by url. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>When the resource indicated by url has been opened in read+write mode, the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> can be used only for writing.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>Used to return the pointer to the created <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a>. In case of failure the pointed to value is set to NULL. </td></tr>
<tr><td class="paramname">url</td><td>resource to access </td></tr>
<tr><td class="paramname">flags</td><td>flags which control how the resource indicated by url is to be opened </td></tr>
<tr><td class="paramname">int_cb</td><td>an interrupt callback to be used at the protocols level </td></tr>
<tr><td class="paramname">options</td><td>A dictionary filled with protocol-private options. On return this parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 in case of success, a negative value corresponding to an AVERROR code in case of failure </dd></dl>
</div>
</div>
<a class="anchor" id="ad71cada104a5e4365d35d45669ea03ca"></a><!-- doxytag: member="avio.h::avio_close" ref="ad71cada104a5e4365d35d45669ea03ca" args="(AVIOContext *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#ad71cada104a5e4365d35d45669ea03ca">avio_close</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Close the resource accessed by the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> s and free it. </p>
<p>This function can only be used if s was opened by <a class="el" href="avio_8h.html#a371a670112abc5f3e15bc570da076301" title="Create and initialize a AVIOContext for accessing the resource indicated by url.">avio_open()</a>.</p>
<p>The internal buffer is automatically flushed before closing the resource.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, an AVERROR < 0 on error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="avio_8h.html#ae118a1f37f1e48617609ead9910aac15" title="Close the resource accessed by the AVIOContext *s, free it and set the pointer pointing to it to NULL...">avio_closep</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ae118a1f37f1e48617609ead9910aac15"></a><!-- doxytag: member="avio.h::avio_closep" ref="ae118a1f37f1e48617609ead9910aac15" args="(AVIOContext **s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#ae118a1f37f1e48617609ead9910aac15">avio_closep</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> ** </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Close the resource accessed by the <a class="el" href="structAVIOContext.html" title="Bytestream IO Context.">AVIOContext</a> *s, free it and set the pointer pointing to it to NULL. </p>
<p>This function can only be used if s was opened by <a class="el" href="avio_8h.html#a371a670112abc5f3e15bc570da076301" title="Create and initialize a AVIOContext for accessing the resource indicated by url.">avio_open()</a>.</p>
<p>The internal buffer is automatically flushed before closing the resource.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, an AVERROR < 0 on error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="avio_8h.html#ad71cada104a5e4365d35d45669ea03ca" title="Close the resource accessed by the AVIOContext s and free it.">avio_close</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a146">muxing.c</a>, <a class="el" href="remuxing_8c-example.html#a49">remuxing.c</a>, <a class="el" href="transcode_aac_8c-example.html#a37">transcode_aac.c</a>, and <a class="el" href="transcoding_8c-example.html#a129">transcoding.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="muxing_8c_source.html#l00556">main()</a>, and <a class="el" href="transcode__aac_8c_source.html#l00120">open_output_file()</a>.</p>
</div>
</div>
<a class="anchor" id="adb5259ad07633518173eaa47fe6575e2"></a><!-- doxytag: member="avio.h::avio_open_dyn_buf" ref="adb5259ad07633518173eaa47fe6575e2" args="(AVIOContext **s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#adb5259ad07633518173eaa47fe6575e2">avio_open_dyn_buf</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> ** </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Open a write only memory stream. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>new IO context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>zero if no error. </dd></dl>
</div>
</div>
<a class="anchor" id="a8faed62ce72e7411cbea2356494af8ce"></a><!-- doxytag: member="avio.h::avio_close_dyn_buf" ref="a8faed62ce72e7411cbea2356494af8ce" args="(AVIOContext *s, uint8_t **pbuffer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a8faed62ce72e7411cbea2356494af8ce">avio_close_dyn_buf</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t ** </td>
<td class="paramname"><em>pbuffer</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the written size and a pointer to the buffer. </p>
<p>The buffer must be freed with <a class="el" href="group__lavu__mem.html#ga0c9096f498624c525aa2315b8a20c411" title="Free a memory block which has been allocated with av_malloc(z)() or av_realloc().">av_free()</a>. Padding of FF_INPUT_BUFFER_PADDING_SIZE is added to the buffer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>IO context </td></tr>
<tr><td class="paramname">pbuffer</td><td>pointer to a byte buffer </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the length of the byte buffer </dd></dl>
</div>
</div>
<a class="anchor" id="a50fda7362db877e8b9e493650c9e3fb3"></a><!-- doxytag: member="avio.h::avio_enum_protocols" ref="a50fda7362db877e8b9e493650c9e3fb3" args="(void **opaque, int output)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="avio_8h.html#a50fda7362db877e8b9e493650c9e3fb3">avio_enum_protocols</a> </td>
<td>(</td>
<td class="paramtype">void ** </td>
<td class="paramname"><em>opaque</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>output</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Iterate through names of available protocols. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">opaque</td><td>A private pointer representing current protocol. It must be a pointer to NULL on first iteration and will be updated by successive calls to avio_enum_protocols. </td></tr>
<tr><td class="paramname">output</td><td>If set to 1, iterate over output protocols, otherwise over input protocols.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A static string containing the name of current protocol or NULL </dd></dl>
</div>
</div>
<a class="anchor" id="a1ac23b54d5f5bbfee4353978d313e472"></a><!-- doxytag: member="avio.h::avio_pause" ref="a1ac23b54d5f5bbfee4353978d313e472" args="(AVIOContext *h, int pause)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#a1ac23b54d5f5bbfee4353978d313e472">avio_pause</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>pause</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Pause and resume playing - only meaningful if using a network streaming protocol (e.g. </p>
<p>MMS).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">h</td><td>IO context from which to call the read_pause function pointer </td></tr>
<tr><td class="paramname">pause</td><td>1 for pause, 0 for resume </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="adbdec54e1897c66b8c8bc43ce0063187"></a><!-- doxytag: member="avio.h::avio_seek_time" ref="adbdec54e1897c66b8c8bc43ce0063187" args="(AVIOContext *h, int stream_index, int64_t timestamp, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t <a class="el" href="avio_8h.html#adbdec54e1897c66b8c8bc43ce0063187">avio_seek_time</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>stream_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>timestamp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Seek to a given timestamp relative to some component stream. </p>
<p>Only meaningful if using a network streaming protocol (e.g. MMS.).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">h</td><td>IO context from which to call the seek function pointers </td></tr>
<tr><td class="paramname">stream_index</td><td>The stream index that the timestamp is relative to. If stream_index is (-1) the timestamp should be in AV_TIME_BASE units from the beginning of the presentation. If a stream_index >= 0 is used and the protocol does not support seeking based on component streams, the call will fail. </td></tr>
<tr><td class="paramname">timestamp</td><td>timestamp in <a class="el" href="structAVStream.html#a9db755451f14e2bf590d4b85d82b32e6" title="This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...">AVStream.time_base</a> units or if there is no stream specified then in AV_TIME_BASE units. </td></tr>
<tr><td class="paramname">flags</td><td>Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE and AVSEEK_FLAG_ANY. The protocol may silently ignore AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will fail if used and not supported. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>>= 0 on success </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structAVInputFormat.html#aa87eb295570be6b0995829da73add291" title="Seek to a given timestamp relative to the frames in stream component stream_index.">AVInputFormat::read_seek</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ae8ad73c8ea7e4a2a541e134f762793a6"></a><!-- doxytag: member="avio.h::avio_read_to_bprint" ref="ae8ad73c8ea7e4a2a541e134f762793a6" args="(AVIOContext *h, struct AVBPrint *pb, size_t max_size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="avio_8h.html#ae8ad73c8ea7e4a2a541e134f762793a6">avio_read_to_bprint</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structAVIOContext.html">AVIOContext</a> * </td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct AVBPrint * </td>
<td class="paramname"><em>pb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>max_size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read contents of h into print buffer, up to max_size bytes, or up to EOF. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success (max_size bytes read or EOF reached), negative error code otherwise </dd></dl>
</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>