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

Repository URL to install this package:

Details    
ffmpeg-doc / usr / share / doc / ffmpeg / api / group__lavu__string.html
Size: Mime:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>FFmpeg: String Manipulation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FFmpeg
   &#160;<span id="projectnumber">3.0.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><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><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

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

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">String Manipulation<div class="ingroups"><a class="el" href="group__lavu.html">Common utility functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga84ac09ffcff9c3c42c35db1f8477cc17"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga84ac09ffcff9c3c42c35db1f8477cc17">AV_ESCAPE_FLAG_WHITESPACE</a>&#160;&#160;&#160;(1 &lt;&lt; 0)</td></tr>
<tr class="memdesc:ga84ac09ffcff9c3c42c35db1f8477cc17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consider spaces special and escape them even in the middle of the string.  <a href="#ga84ac09ffcff9c3c42c35db1f8477cc17">More...</a><br/></td></tr>
<tr class="separator:ga84ac09ffcff9c3c42c35db1f8477cc17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24963cc06a1b89194ba8a2fe013a7d7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga24963cc06a1b89194ba8a2fe013a7d7d">AV_ESCAPE_FLAG_STRICT</a>&#160;&#160;&#160;(1 &lt;&lt; 1)</td></tr>
<tr class="memdesc:ga24963cc06a1b89194ba8a2fe013a7d7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape only specified special characters.  <a href="#ga24963cc06a1b89194ba8a2fe013a7d7d">More...</a><br/></td></tr>
<tr class="separator:ga24963cc06a1b89194ba8a2fe013a7d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61b431e73b72949c839788914a599207"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga61b431e73b72949c839788914a599207">AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga61b431e73b72949c839788914a599207"><td class="mdescLeft">&#160;</td><td class="mdescRight">accept codepoints over 0x10FFFF  <a href="#ga61b431e73b72949c839788914a599207">More...</a><br/></td></tr>
<tr class="separator:ga61b431e73b72949c839788914a599207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc5f344d3eafe34e9c3169b1178e137b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gadc5f344d3eafe34e9c3169b1178e137b">AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:gadc5f344d3eafe34e9c3169b1178e137b"><td class="mdescLeft">&#160;</td><td class="mdescRight">accept non-characters - 0xFFFE and 0xFFFF  <a href="#gadc5f344d3eafe34e9c3169b1178e137b">More...</a><br/></td></tr>
<tr class="separator:gadc5f344d3eafe34e9c3169b1178e137b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39a93e11907ca4b116d8d179cbdb570d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga39a93e11907ca4b116d8d179cbdb570d">AV_UTF8_FLAG_ACCEPT_SURROGATES</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga39a93e11907ca4b116d8d179cbdb570d"><td class="mdescLeft">&#160;</td><td class="mdescRight">accept UTF-16 surrogates codes  <a href="#ga39a93e11907ca4b116d8d179cbdb570d">More...</a><br/></td></tr>
<tr class="separator:ga39a93e11907ca4b116d8d179cbdb570d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecaf936b2eb2f3c410869e235650229b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gaecaf936b2eb2f3c410869e235650229b">AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES</a>&#160;&#160;&#160;8</td></tr>
<tr class="memdesc:gaecaf936b2eb2f3c410869e235650229b"><td class="mdescLeft">&#160;</td><td class="mdescRight">exclude control codes not accepted by XML  <a href="#gaecaf936b2eb2f3c410869e235650229b">More...</a><br/></td></tr>
<tr class="separator:gaecaf936b2eb2f3c410869e235650229b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4825349f5346880c6ac32b0847e9a73a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga4825349f5346880c6ac32b0847e9a73a">AV_UTF8_FLAG_ACCEPT_ALL</a>&#160;&#160;&#160;<a class="el" href="group__lavu__string.html#ga61b431e73b72949c839788914a599207">AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES</a>|<a class="el" href="group__lavu__string.html#gadc5f344d3eafe34e9c3169b1178e137b">AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS</a>|<a class="el" href="group__lavu__string.html#ga39a93e11907ca4b116d8d179cbdb570d">AV_UTF8_FLAG_ACCEPT_SURROGATES</a></td></tr>
<tr class="separator:ga4825349f5346880c6ac32b0847e9a73a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaef885958293f07153383f99db573ff5a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gaef885958293f07153383f99db573ff5a">AVEscapeMode</a> { <a class="el" href="group__lavu__string.html#ggaef885958293f07153383f99db573ff5aa342d7bf60c9a7cb7a886f70f81ac5071">AV_ESCAPE_MODE_AUTO</a>, 
<a class="el" href="group__lavu__string.html#ggaef885958293f07153383f99db573ff5aa8b2d26951a9e06d8f7c12977a204eaf9">AV_ESCAPE_MODE_BACKSLASH</a>, 
<a class="el" href="group__lavu__string.html#ggaef885958293f07153383f99db573ff5aa84da6c323003df474c690ccf5d4e5d67">AV_ESCAPE_MODE_QUOTE</a>
 }</td></tr>
<tr class="separator:gaef885958293f07153383f99db573ff5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6135a12628e2b6a63c8d3d9b3a742b06"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga6135a12628e2b6a63c8d3d9b3a742b06">av_strstart</a> (const char *str, const char *pfx, const char **ptr)</td></tr>
<tr class="memdesc:ga6135a12628e2b6a63c8d3d9b3a742b06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return non-zero if pfx is a prefix of str.  <a href="#ga6135a12628e2b6a63c8d3d9b3a742b06">More...</a><br/></td></tr>
<tr class="separator:ga6135a12628e2b6a63c8d3d9b3a742b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd29ff1f7e62230a113c88fa10d3f5b9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gacd29ff1f7e62230a113c88fa10d3f5b9">av_stristart</a> (const char *str, const char *pfx, const char **ptr)</td></tr>
<tr class="memdesc:gacd29ff1f7e62230a113c88fa10d3f5b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return non-zero if pfx is a prefix of str independent of case.  <a href="#gacd29ff1f7e62230a113c88fa10d3f5b9">More...</a><br/></td></tr>
<tr class="separator:gacd29ff1f7e62230a113c88fa10d3f5b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47e14424edfb96d3f6bf0fca96a76fe5"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga47e14424edfb96d3f6bf0fca96a76fe5">av_stristr</a> (const char *haystack, const char *needle)</td></tr>
<tr class="memdesc:ga47e14424edfb96d3f6bf0fca96a76fe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locate the first case-independent occurrence in the string haystack of the string needle.  <a href="#ga47e14424edfb96d3f6bf0fca96a76fe5">More...</a><br/></td></tr>
<tr class="separator:ga47e14424edfb96d3f6bf0fca96a76fe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga827486f333df7bc9a4e7f9bd212ba472"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga827486f333df7bc9a4e7f9bd212ba472">av_strnstr</a> (const char *haystack, const char *needle, size_t hay_length)</td></tr>
<tr class="memdesc:ga827486f333df7bc9a4e7f9bd212ba472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locate the first occurrence of the string needle in the string haystack where not more than hay_length characters are searched.  <a href="#ga827486f333df7bc9a4e7f9bd212ba472">More...</a><br/></td></tr>
<tr class="separator:ga827486f333df7bc9a4e7f9bd212ba472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga716447ae73b612bcf3a405b9b4608f6c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga716447ae73b612bcf3a405b9b4608f6c">av_strlcpy</a> (char *dst, const char *src, size_t size)</td></tr>
<tr class="memdesc:ga716447ae73b612bcf3a405b9b4608f6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.  <a href="#ga716447ae73b612bcf3a405b9b4608f6c">More...</a><br/></td></tr>
<tr class="separator:ga716447ae73b612bcf3a405b9b4608f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga193877ba459faf314c3d285b6082cf73"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga193877ba459faf314c3d285b6082cf73">av_strlcat</a> (char *dst, const char *src, size_t size)</td></tr>
<tr class="memdesc:ga193877ba459faf314c3d285b6082cf73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the string src to the string dst, but to a total length of no more than size - 1 bytes, and null-terminate dst.  <a href="#ga193877ba459faf314c3d285b6082cf73">More...</a><br/></td></tr>
<tr class="separator:ga193877ba459faf314c3d285b6082cf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae264e2caf6ad1ca830ce3f2b49abdf50"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gae264e2caf6ad1ca830ce3f2b49abdf50">av_strlcatf</a> (char *dst, size_t size, const char *fmt,...) <a class="el" href="attributes_8h.html#a4b078d4b8e02c0f452ee1dcaa7d983d3">av_printf_format</a>(3</td></tr>
<tr class="memdesc:gae264e2caf6ad1ca830ce3f2b49abdf50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append output to a string, according to a format.  <a href="#gae264e2caf6ad1ca830ce3f2b49abdf50">More...</a><br/></td></tr>
<tr class="separator:gae264e2caf6ad1ca830ce3f2b49abdf50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cb2a3929575d28a415dc02b917ecc01"><td class="memItemLeft" align="right" valign="top">size_t static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga1cb2a3929575d28a415dc02b917ecc01">av_strnlen</a> (const char *s, size_t len)</td></tr>
<tr class="memdesc:ga1cb2a3929575d28a415dc02b917ecc01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of continuous non zero chars starting from the beginning.  <a href="#ga1cb2a3929575d28a415dc02b917ecc01">More...</a><br/></td></tr>
<tr class="separator:ga1cb2a3929575d28a415dc02b917ecc01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a8e3f4a2a3039c441bd0826e4727462"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga0a8e3f4a2a3039c441bd0826e4727462">av_asprintf</a> (const char *fmt,...) <a class="el" href="attributes_8h.html#a4b078d4b8e02c0f452ee1dcaa7d983d3">av_printf_format</a>(1</td></tr>
<tr class="memdesc:ga0a8e3f4a2a3039c441bd0826e4727462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print arguments following specified format into a large enough auto allocated buffer.  <a href="#ga0a8e3f4a2a3039c441bd0826e4727462">More...</a><br/></td></tr>
<tr class="separator:ga0a8e3f4a2a3039c441bd0826e4727462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45d0395a448bc186baf081933ea816c9"><td class="memItemLeft" align="right" valign="top">char char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga45d0395a448bc186baf081933ea816c9">av_d2str</a> (double d)</td></tr>
<tr class="memdesc:ga45d0395a448bc186baf081933ea816c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a number to a av_malloced string.  <a href="#ga45d0395a448bc186baf081933ea816c9">More...</a><br/></td></tr>
<tr class="separator:ga45d0395a448bc186baf081933ea816c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b438169b430f6edf4f4451d867a9218"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga7b438169b430f6edf4f4451d867a9218">av_get_token</a> (const char **buf, const char *term)</td></tr>
<tr class="memdesc:ga7b438169b430f6edf4f4451d867a9218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unescape the given string until a non escaped terminating char, and return the token corresponding to the unescaped string.  <a href="#ga7b438169b430f6edf4f4451d867a9218">More...</a><br/></td></tr>
<tr class="separator:ga7b438169b430f6edf4f4451d867a9218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d4270f4ed651c414e2850090b9b77c4"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga3d4270f4ed651c414e2850090b9b77c4">av_strtok</a> (char *s, const char *delim, char **saveptr)</td></tr>
<tr class="memdesc:ga3d4270f4ed651c414e2850090b9b77c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split the string into several tokens which can be accessed by successive calls to <a class="el" href="group__lavu__string.html#ga3d4270f4ed651c414e2850090b9b77c4" title="Split the string into several tokens which can be accessed by successive calls to av_strtok()...">av_strtok()</a>.  <a href="#ga3d4270f4ed651c414e2850090b9b77c4">More...</a><br/></td></tr>
<tr class="separator:ga3d4270f4ed651c414e2850090b9b77c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54f9d8cb6e7f411fb145dd6ade19e939"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga54f9d8cb6e7f411fb145dd6ade19e939">av_isdigit</a> (int c)</td></tr>
<tr class="memdesc:ga54f9d8cb6e7f411fb145dd6ade19e939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII isdigit.  <a href="#ga54f9d8cb6e7f411fb145dd6ade19e939">More...</a><br/></td></tr>
<tr class="separator:ga54f9d8cb6e7f411fb145dd6ade19e939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91dbda7570409baeb62265fa5f425039"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga91dbda7570409baeb62265fa5f425039">av_isgraph</a> (int c)</td></tr>
<tr class="memdesc:ga91dbda7570409baeb62265fa5f425039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII isgraph.  <a href="#ga91dbda7570409baeb62265fa5f425039">More...</a><br/></td></tr>
<tr class="separator:ga91dbda7570409baeb62265fa5f425039"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96490acc8dd8d85f2ee43bc605661ffa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga96490acc8dd8d85f2ee43bc605661ffa">av_isspace</a> (int c)</td></tr>
<tr class="memdesc:ga96490acc8dd8d85f2ee43bc605661ffa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII isspace.  <a href="#ga96490acc8dd8d85f2ee43bc605661ffa">More...</a><br/></td></tr>
<tr class="separator:ga96490acc8dd8d85f2ee43bc605661ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c20e01cbc94a7c9996a8ce93de046b0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga9c20e01cbc94a7c9996a8ce93de046b0">av_toupper</a> (int c)</td></tr>
<tr class="memdesc:ga9c20e01cbc94a7c9996a8ce93de046b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII characters to uppercase.  <a href="#ga9c20e01cbc94a7c9996a8ce93de046b0">More...</a><br/></td></tr>
<tr class="separator:ga9c20e01cbc94a7c9996a8ce93de046b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4586526cc16bff30163dee592ed2897c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga4586526cc16bff30163dee592ed2897c">av_tolower</a> (int c)</td></tr>
<tr class="memdesc:ga4586526cc16bff30163dee592ed2897c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII characters to lowercase.  <a href="#ga4586526cc16bff30163dee592ed2897c">More...</a><br/></td></tr>
<tr class="separator:ga4586526cc16bff30163dee592ed2897c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga644b6231c0c43b9e2925db980f6bfa81"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga644b6231c0c43b9e2925db980f6bfa81">av_isxdigit</a> (int c)</td></tr>
<tr class="memdesc:ga644b6231c0c43b9e2925db980f6bfa81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent conversion of ASCII isxdigit.  <a href="#ga644b6231c0c43b9e2925db980f6bfa81">More...</a><br/></td></tr>
<tr class="separator:ga644b6231c0c43b9e2925db980f6bfa81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c60b7d4ce023a6466bc033e31c5349c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga4c60b7d4ce023a6466bc033e31c5349c">av_strcasecmp</a> (const char *a, const char *b)</td></tr>
<tr class="memdesc:ga4c60b7d4ce023a6466bc033e31c5349c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent case-insensitive compare.  <a href="#ga4c60b7d4ce023a6466bc033e31c5349c">More...</a><br/></td></tr>
<tr class="separator:ga4c60b7d4ce023a6466bc033e31c5349c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea8a7c8c2832c11e753fbfc0d1464970"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gaea8a7c8c2832c11e753fbfc0d1464970">av_strncasecmp</a> (const char *a, const char *b, size_t n)</td></tr>
<tr class="memdesc:gaea8a7c8c2832c11e753fbfc0d1464970"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locale-independent case-insensitive compare.  <a href="#gaea8a7c8c2832c11e753fbfc0d1464970">More...</a><br/></td></tr>
<tr class="separator:gaea8a7c8c2832c11e753fbfc0d1464970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fe5db82a1f7639434fc01bf83919096"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga1fe5db82a1f7639434fc01bf83919096">av_basename</a> (const char *path)</td></tr>
<tr class="memdesc:ga1fe5db82a1f7639434fc01bf83919096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread safe basename.  <a href="#ga1fe5db82a1f7639434fc01bf83919096">More...</a><br/></td></tr>
<tr class="separator:ga1fe5db82a1f7639434fc01bf83919096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac50facc4ebec4a3a4a06c058a71bc027"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gac50facc4ebec4a3a4a06c058a71bc027">av_dirname</a> (char *path)</td></tr>
<tr class="memdesc:gac50facc4ebec4a3a4a06c058a71bc027"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread safe dirname.  <a href="#gac50facc4ebec4a3a4a06c058a71bc027">More...</a><br/></td></tr>
<tr class="separator:gac50facc4ebec4a3a4a06c058a71bc027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5883fa1071129810bccfad9b3e779371"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga5883fa1071129810bccfad9b3e779371">av_match_name</a> (const char *name, const char *names)</td></tr>
<tr class="memdesc:ga5883fa1071129810bccfad9b3e779371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Match instances of a name in a comma-separated list of names.  <a href="#ga5883fa1071129810bccfad9b3e779371">More...</a><br/></td></tr>
<tr class="separator:ga5883fa1071129810bccfad9b3e779371"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a948df0bd80a22f3fc4a267c4ef08c1"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga7a948df0bd80a22f3fc4a267c4ef08c1">av_append_path_component</a> (const char *path, const char *component)</td></tr>
<tr class="memdesc:ga7a948df0bd80a22f3fc4a267c4ef08c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append path component to the existing path.  <a href="#ga7a948df0bd80a22f3fc4a267c4ef08c1">More...</a><br/></td></tr>
<tr class="separator:ga7a948df0bd80a22f3fc4a267c4ef08c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c5e00d3f0575f2a3858f837656c08e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="attributes_8h.html#a93f17e0f0b53a66e7b5eceb3dff2918f">av_warn_unused_result</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga3c5e00d3f0575f2a3858f837656c08e9">av_escape</a> (char **dst, const char *src, const char *special_chars, enum <a class="el" href="group__lavu__string.html#gaef885958293f07153383f99db573ff5a">AVEscapeMode</a> mode, int flags)</td></tr>
<tr class="memdesc:ga3c5e00d3f0575f2a3858f837656c08e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Escape string in src, and put the escaped string in an allocated string in *dst, which 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>.  <a href="#ga3c5e00d3f0575f2a3858f837656c08e9">More...</a><br/></td></tr>
<tr class="separator:ga3c5e00d3f0575f2a3858f837656c08e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6e5b8d7ba04ac2023e825222c36bee3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="attributes_8h.html#a93f17e0f0b53a66e7b5eceb3dff2918f">av_warn_unused_result</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#gac6e5b8d7ba04ac2023e825222c36bee3">av_utf8_decode</a> (int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags)</td></tr>
<tr class="memdesc:gac6e5b8d7ba04ac2023e825222c36bee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to point to the next byte to decode.  <a href="#gac6e5b8d7ba04ac2023e825222c36bee3">More...</a><br/></td></tr>
<tr class="separator:gac6e5b8d7ba04ac2023e825222c36bee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a6eb11f2b4053d6bba95d8da156da2d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__string.html#ga9a6eb11f2b4053d6bba95d8da156da2d">av_match_list</a> (const char *name, const char *list, char separator)</td></tr>
<tr class="memdesc:ga9a6eb11f2b4053d6bba95d8da156da2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a name is in a list.  <a href="#ga9a6eb11f2b4053d6bba95d8da156da2d">More...</a><br/></td></tr>
<tr class="separator:ga9a6eb11f2b4053d6bba95d8da156da2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga84ac09ffcff9c3c42c35db1f8477cc17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_ESCAPE_FLAG_WHITESPACE&#160;&#160;&#160;(1 &lt;&lt; 0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Consider spaces special and escape them even in the middle of the string. </p>
<p>This is equivalent to adding the whitespace characters to the special characters lists, except it is guaranteed to use the exact same list of whitespace characters as the rest of libavutil. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00322">322</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga24963cc06a1b89194ba8a2fe013a7d7d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_ESCAPE_FLAG_STRICT&#160;&#160;&#160;(1 &lt;&lt; 1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Escape only specified special characters. </p>
<p>Without this flag, escape also any characters that may be considered special by <a class="el" href="group__lavu__string.html#ga7b438169b430f6edf4f4451d867a9218" title="Unescape the given string until a non escaped terminating char, and return the token corresponding to...">av_get_token()</a>, such as the single quote. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00329">329</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga61b431e73b72949c839788914a599207"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>accept codepoints over 0x10FFFF </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00351">351</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="gadc5f344d3eafe34e9c3169b1178e137b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>accept non-characters - 0xFFFE and 0xFFFF </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00352">352</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga39a93e11907ca4b116d8d179cbdb570d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_UTF8_FLAG_ACCEPT_SURROGATES&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>accept UTF-16 surrogates codes </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00353">353</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaecaf936b2eb2f3c410869e235650229b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>exclude control codes not accepted by XML </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00354">354</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga4825349f5346880c6ac32b0847e9a73a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AV_UTF8_FLAG_ACCEPT_ALL&#160;&#160;&#160;<a class="el" href="group__lavu__string.html#ga61b431e73b72949c839788914a599207">AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES</a>|<a class="el" href="group__lavu__string.html#gadc5f344d3eafe34e9c3169b1178e137b">AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS</a>|<a class="el" href="group__lavu__string.html#ga39a93e11907ca4b116d8d179cbdb570d">AV_UTF8_FLAG_ACCEPT_SURROGATES</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00356">356</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaef885958293f07153383f99db573ff5a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__lavu__string.html#gaef885958293f07153383f99db573ff5a">AVEscapeMode</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaef885958293f07153383f99db573ff5aa342d7bf60c9a7cb7a886f70f81ac5071"></a>AV_ESCAPE_MODE_AUTO</em>&#160;</td><td class="fielddoc">
<p>Use auto-selected escaping mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaef885958293f07153383f99db573ff5aa8b2d26951a9e06d8f7c12977a204eaf9"></a>AV_ESCAPE_MODE_BACKSLASH</em>&#160;</td><td class="fielddoc">
<p>Use backslash escaping. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaef885958293f07153383f99db573ff5aa84da6c323003df474c690ccf5d4e5d67"></a>AV_ESCAPE_MODE_QUOTE</em>&#160;</td><td class="fielddoc">
<p>Use single-quote escaping. </p>
</td></tr>
</table>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00308">308</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga6135a12628e2b6a63c8d3d9b3a742b06"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_strstart </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pfx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return non-zero if pfx is a prefix of str. </p>
<p>If it is, *ptr is set to the address of the first character in str after the prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>input string </td></tr>
    <tr><td class="paramname">pfx</td><td>prefix to test </td></tr>
    <tr><td class="paramname">ptr</td><td>updated if the prefix is matched inside str </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>non-zero if the prefix matches, zero otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="gacd29ff1f7e62230a113c88fa10d3f5b9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_stristart </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pfx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return non-zero if pfx is a prefix of str independent of case. </p>
<p>If it is, *ptr is set to the address of the first character in str after the prefix.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>input string </td></tr>
    <tr><td class="paramname">pfx</td><td>prefix to test </td></tr>
    <tr><td class="paramname">ptr</td><td>updated if the prefix is matched inside str </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>non-zero if the prefix matches, zero otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ga47e14424edfb96d3f6bf0fca96a76fe5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_stristr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>haystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>needle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Locate the first case-independent occurrence in the string haystack of the string needle. </p>
<p>A zero-length string needle is considered to match at the start of haystack.</p>
<p>This function is a case-insensitive version of the standard strstr().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haystack</td><td>string to search in </td></tr>
    <tr><td class="paramname">needle</td><td>string to search for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the located match within haystack or a null pointer if no match </dd></dl>

</div>
</div>
<a class="anchor" id="ga827486f333df7bc9a4e7f9bd212ba472"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_strnstr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>haystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>needle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hay_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Locate the first occurrence of the string needle in the string haystack where not more than hay_length characters are searched. </p>
<p>A zero-length string needle is considered to match at the start of haystack.</p>
<p>This function is a length-limited version of the standard strstr().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">haystack</td><td>string to search in </td></tr>
    <tr><td class="paramname">needle</td><td>string to search for </td></tr>
    <tr><td class="paramname">hay_length</td><td>length of string to search in </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the located match within haystack or a null pointer if no match </dd></dl>

</div>
</div>
<a class="anchor" id="ga716447ae73b612bcf3a405b9b4608f6c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t av_strlcpy </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst. </p>
<p>This function is the same as BSD strlcpy().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>destination buffer </td></tr>
    <tr><td class="paramname">src</td><td>source string </td></tr>
    <tr><td class="paramname">size</td><td>size of destination buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the length of src</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>since the return value is the length of src, src absolutely <em>must</em> be a properly 0-terminated string, otherwise this will read beyond the end of the buffer and possibly crash. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="transcode_aac_8c-example.html#a21">transcode_aac.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="transcode__aac_8c_source.html#l00120">open_output_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ga193877ba459faf314c3d285b6082cf73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t av_strlcat </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append the string src to the string dst, but to a total length of no more than size - 1 bytes, and null-terminate dst. </p>
<p>This function is similar to BSD strlcat(), but differs when size &lt;= strlen(dst).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>destination buffer </td></tr>
    <tr><td class="paramname">src</td><td>source string </td></tr>
    <tr><td class="paramname">size</td><td>size of destination buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the total length of src and dst</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>since the return value use the length of src and dst, these absolutely <em>must</em> be a properly 0-terminated strings, otherwise this will read beyond the end of the buffer and possibly crash. </dd></dl>

</div>
</div>
<a class="anchor" id="gae264e2caf6ad1ca830ce3f2b49abdf50"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t av_strlcatf </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append output to a string, according to a format. </p>
<p>Never write out of the destination buffer, and always put a terminating 0 within the buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>destination buffer (string to which the output is appended) </td></tr>
    <tr><td class="paramname">size</td><td>total size of the destination buffer </td></tr>
    <tr><td class="paramname">fmt</td><td>printf-compatible format string, specifying how the following parameters are used </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the length of the string that would have been generated if enough space had been available </dd></dl>

</div>
</div>
<a class="anchor" id="ga1cb2a3929575d28a415dc02b917ecc01"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t static size_t av_strnlen </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the count of continuous non zero chars starting from the beginning. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">len</td><td>maximum number of characters to check in the string, that is the maximum value which is returned by the function </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00140">140</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0a8e3f4a2a3039c441bd0826e4727462"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_asprintf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print arguments following specified format into a large enough auto allocated buffer. </p>
<p>It is similar to GNU asprintf(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fmt</td><td>printf-compatible format string, specifying how the following parameters are used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the allocated string </dd></dl>
<dl class="section note"><dt>Note</dt><dd>You have to free the string yourself 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>. </dd></dl>

</div>
</div>
<a class="anchor" id="ga45d0395a448bc186baf081933ea816c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char char* av_d2str </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a number to a av_malloced string. </p>

</div>
</div>
<a class="anchor" id="ga7b438169b430f6edf4f4451d867a9218"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_get_token </td>
          <td>(</td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>term</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unescape the given string until a non escaped terminating char, and return the token corresponding to the unescaped string. </p>
<p>The normal \ and ' escaping is supported. Leading and trailing whitespaces are removed, unless they are escaped with '\' or are enclosed between ''.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>the buffer to parse, buf will be updated to point to the terminating char </td></tr>
    <tr><td class="paramname">term</td><td>a 0-terminated list of terminating chars </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the malloced unescaped string, which must be av_freed by the user, NULL in case of allocation failure </dd></dl>

</div>
</div>
<a class="anchor" id="ga3d4270f4ed651c414e2850090b9b77c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_strtok </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>delim</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>saveptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Split the string into several tokens which can be accessed by successive calls to <a class="el" href="group__lavu__string.html#ga3d4270f4ed651c414e2850090b9b77c4" title="Split the string into several tokens which can be accessed by successive calls to av_strtok()...">av_strtok()</a>. </p>
<p>A token is defined as a sequence of characters not belonging to the set specified in delim.</p>
<p>On the first call to <a class="el" href="group__lavu__string.html#ga3d4270f4ed651c414e2850090b9b77c4" title="Split the string into several tokens which can be accessed by successive calls to av_strtok()...">av_strtok()</a>, s should point to the string to parse, and the value of saveptr is ignored. In subsequent calls, s should be NULL, and saveptr should be unchanged since the previous call.</p>
<p>This function is similar to strtok_r() defined in POSIX.1.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>the string to parse, may be NULL </td></tr>
    <tr><td class="paramname">delim</td><td>0-terminated list of token delimiters, must be non-NULL </td></tr>
    <tr><td class="paramname">saveptr</td><td>user-provided pointer which points to stored information necessary for <a class="el" href="group__lavu__string.html#ga3d4270f4ed651c414e2850090b9b77c4" title="Split the string into several tokens which can be accessed by successive calls to av_strtok()...">av_strtok()</a> to continue scanning the same string. saveptr is updated to point to the next character after the first delimiter found, or to NULL if the string was terminated </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the found token, or NULL when no token is found </dd></dl>

</div>
</div>
<a class="anchor" id="ga54f9d8cb6e7f411fb145dd6ade19e939"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_isdigit </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII isdigit. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00206">206</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

<p>Referenced by <a class="el" href="avstring_8h_source.html#l00251">av_isxdigit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga91dbda7570409baeb62265fa5f425039"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_isgraph </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII isgraph. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00214">214</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga96490acc8dd8d85f2ee43bc605661ffa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_isspace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII isspace. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00222">222</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c20e01cbc94a7c9996a8ce93de046b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_toupper </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII characters to uppercase. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00231">231</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga4586526cc16bff30163dee592ed2897c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_tolower </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII characters to lowercase. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00241">241</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

<p>Referenced by <a class="el" href="avstring_8h_source.html#l00251">av_isxdigit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga644b6231c0c43b9e2925db980f6bfa81"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="attributes_8h.html#a9eaead3cde73464fd66bab4cef9307ad">av_const</a> int av_isxdigit </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locale-independent conversion of ASCII isxdigit. </p>

<p>Definition at line <a class="el" href="avstring_8h_source.html#l00251">251</a> of file <a class="el" href="avstring_8h_source.html">avstring.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga4c60b7d4ce023a6466bc033e31c5349c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_strcasecmp </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Locale-independent case-insensitive compare. </p>
<dl class="section note"><dt>Note</dt><dd>This means only ASCII-range characters are case-insensitive </dd></dl>

</div>
</div>
<a class="anchor" id="gaea8a7c8c2832c11e753fbfc0d1464970"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_strncasecmp </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Locale-independent case-insensitive compare. </p>
<dl class="section note"><dt>Note</dt><dd>This means only ASCII-range characters are case-insensitive </dd></dl>

</div>
</div>
<a class="anchor" id="ga1fe5db82a1f7639434fc01bf83919096"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* av_basename </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Thread safe basename. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path, on DOS both \ and / are considered separators. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the basename substring. </dd></dl>

</div>
</div>
<a class="anchor" id="gac50facc4ebec4a3a4a06c058a71bc027"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* av_dirname </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Thread safe dirname. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path, on DOS both \ and / are considered separators. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the path with the separator replaced by the string terminator or ".". </dd></dl>
<dl class="section note"><dt>Note</dt><dd>the function may change the input string. </dd></dl>

</div>
</div>
<a class="anchor" id="ga5883fa1071129810bccfad9b3e779371"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_match_name </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>names</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Match instances of a name in a comma-separated list of names. </p>
<p>List entries are checked from the start to the end of the names list, the first match ends further processing. If an entry prefixed with '-' matches, then 0 is returned. The "ALL" list entry is considered to match all names.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>Name to look for. </td></tr>
    <tr><td class="paramname">names</td><td>List of names. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on match, 0 otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7a948df0bd80a22f3fc4a267c4ef08c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* av_append_path_component </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>component</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append path component to the existing path. </p>
<p>Path separator '/' is placed between when needed. Resulting string have to 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>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>base path </td></tr>
    <tr><td class="paramname">component</td><td>component to be appended </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new path or NULL on error. </dd></dl>

</div>
</div>
<a class="anchor" id="ga3c5e00d3f0575f2a3858f837656c08e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="attributes_8h.html#a93f17e0f0b53a66e7b5eceb3dff2918f">av_warn_unused_result</a> int av_escape </td>
          <td>(</td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>special_chars</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__lavu__string.html#gaef885958293f07153383f99db573ff5a">AVEscapeMode</a>&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Escape string in src, and put the escaped string in an allocated string in *dst, which 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>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>pointer where an allocated string is put </td></tr>
    <tr><td class="paramname">src</td><td>string to escape, must be non-NULL </td></tr>
    <tr><td class="paramname">special_chars</td><td>string containing the special characters which need to be escaped, can be NULL </td></tr>
    <tr><td class="paramname">mode</td><td>escape mode to employ, see AV_ESCAPE_MODE_* macros. Any unknown value for mode will be considered equivalent to AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without notice. </td></tr>
    <tr><td class="paramname">flags</td><td>flags which control how to escape, see AV_ESCAPE_FLAG_ macros </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the length of the allocated string, or a negative error code in case of error </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="bprint_8h.html#a14ec58eeaa6d4a3571cd9f0ffb873e62" title="Escape the content in src and append it to dstbuf. ">av_bprint_escape()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gac6e5b8d7ba04ac2023e825222c36bee3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="attributes_8h.html#a93f17e0f0b53a66e7b5eceb3dff2918f">av_warn_unused_result</a> int av_utf8_decode </td>
          <td>(</td>
          <td class="paramtype">int32_t *&#160;</td>
          <td class="paramname"><em>codep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t **&#160;</td>
          <td class="paramname"><em>bufp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>buf_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to point to the next byte to decode. </p>
<p>In case of an invalid byte sequence, the pointer will be updated to the next byte after the invalid sequence and the function will return an error code.</p>
<p>Depending on the specified flags, the function will also fail in case the decoded code point does not belong to a valid range.</p>
<dl class="section note"><dt>Note</dt><dd>For speed-relevant code a carefully implemented use of <a class="el" href="common_8h.html#a1a2fd8cd42afb00c9f69562f52b1ae4b" title="Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. ">GET_UTF8()</a> may be preferred.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">codep</td><td>pointer used to return the parsed code in case of success. The value in *codep is set even in case the range check fails. </td></tr>
    <tr><td class="paramname">bufp</td><td>pointer to the address the first byte of the sequence to decode, updated by the function to point to the byte next after the decoded sequence </td></tr>
    <tr><td class="paramname">buf_end</td><td>pointer to the end of the buffer, points to the next byte past the last in the buffer. This is used to avoid buffer overreads (in case of an unfinished UTF-8 sequence towards the end of the buffer). </td></tr>
    <tr><td class="paramname">flags</td><td>a collection of AV_UTF8_FLAG_* flags </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>&gt;= 0 in case a sequence was successfully read, a negative value in case of invalid sequence </dd></dl>

</div>
</div>
<a class="anchor" id="ga9a6eb11f2b4053d6bba95d8da156da2d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int av_match_list </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>separator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a name is in a list. </p>
<dl class="section return"><dt>Returns</dt><dd>0 if not found, or the 1 based index where it has been found in the list. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>