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-doc / api / group__lavu__dict.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"/>
<title>FFmpeg: AVDictionary</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
   &#160;<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&#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>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">AVDictionary</div>  </div>
<div class="ingroups"><a class="el" href="group__lavu__data.html">Data Structures</a></div></div><!--header-->
<div class="contents">

<p>Simple key:value store.  
<a href="#details">More...</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 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structAVDictionaryEntry.html">AVDictionaryEntry</a></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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gad9cbc53cec515b72ae7caa2e194c6bc0">AV_DICT_MATCH_CASE</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Only get an entry with exact-case key match.  <a href="#gad9cbc53cec515b72ae7caa2e194c6bc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga341bbd1ea599dfb0510f419e5272fecc">AV_DICT_IGNORE_SUFFIX</a>&#160;&#160;&#160;2</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string.  <a href="#ga341bbd1ea599dfb0510f419e5272fecc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gacb0ce4f20c15bf174f93590ace0fc8fd">AV_DICT_DONT_STRDUP_KEY</a>&#160;&#160;&#160;4</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Take ownership of a key that's been 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> or another memory allocation function.  <a href="#gacb0ce4f20c15bf174f93590ace0fc8fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga7a9a991cb7837b10ffd44725263de425">AV_DICT_DONT_STRDUP_VAL</a>&#160;&#160;&#160;8</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Take ownership of a value that's been 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> or another memory allocation function.  <a href="#ga7a9a991cb7837b10ffd44725263de425"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga8ed4237acfc3d68484301a5d1859936c">AV_DICT_DONT_OVERWRITE</a>&#160;&#160;&#160;16</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Don't overwrite existing entries.  <a href="#ga8ed4237acfc3d68484301a5d1859936c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga64018c01d1e8c44d1d8c03dfb099f2c2">AV_DICT_APPEND</a>&#160;&#160;&#160;32</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">If the entry already exists, append to it.  <a href="#ga64018c01d1e8c44d1d8c03dfb099f2c2"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structAVDictionaryEntry.html">AVDictionaryEntry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3">av_dict_get</a> (const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *m, const char *key, const <a class="el" href="structAVDictionaryEntry.html">AVDictionaryEntry</a> *prev, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a dictionary entry with matching key.  <a href="#gae67f143237b2cb2936c9b147aa6dfde3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gad21456d6601aa096c7c78dce8848d50a">av_dict_count</a> (const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *m)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of entries in dictionary.  <a href="#gad21456d6601aa096c7c78dce8848d50a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga8d9c2de72b310cef8e6a28c9cd3acbbe">av_dict_set</a> (<a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **pm, const char *key, const char *value, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the given entry in *pm, overwriting an existing entry.  <a href="#ga8d9c2de72b310cef8e6a28c9cd3acbbe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gafd013a88620b2da7d497b083f6ea7d29">av_dict_set_int</a> (<a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **pm, const char *key, int64_t value, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience wrapper for av_dict_set that converts the value to a string and stores it.  <a href="#gafd013a88620b2da7d497b083f6ea7d29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gaca5ff7c251e60bd13164d13c82f21b79">av_dict_parse_string</a> (<a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **pm, const char *str, const char *key_val_sep, const char *pairs_sep, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the key/value pairs list and add the parsed entries to a dictionary.  <a href="#gaca5ff7c251e60bd13164d13c82f21b79"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga6dabaab2d8a53674db6ffd5ac8de3d9f">av_dict_copy</a> (<a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **dst, const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *src, int flags)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy entries from one AVDictionary struct into another.  <a href="#ga6dabaab2d8a53674db6ffd5ac8de3d9f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga1bafd682b1fbb90e48a4cc3814b820f7">av_dict_free</a> (<a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **m)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free all the memory allocated for an AVDictionary struct and all keys and values.  <a href="#ga1bafd682b1fbb90e48a4cc3814b820f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga480ab3fb3ac6cae8e60e97f58ec30b66">av_dict_get_string</a> (const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *m, char **buffer, const char key_val_sep, const char pairs_sep)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get dictionary entries as a string.  <a href="#ga480ab3fb3ac6cae8e60e97f58ec30b66"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Simple key:value store. </p>
<p>Dictionaries are used for storing key:value pairs. To create an AVDictionary, simply pass an address of a NULL pointer to <a class="el" href="group__lavu__dict.html#ga8d9c2de72b310cef8e6a28c9cd3acbbe" title="Set the given entry in *pm, overwriting an existing entry.">av_dict_set()</a>. NULL can be used as an empty dictionary wherever a pointer to an AVDictionary is required. Use <a class="el" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3" title="Get a dictionary entry with matching key.">av_dict_get()</a> to retrieve an entry or iterate over all entries and finally <a class="el" href="group__lavu__dict.html#ga1bafd682b1fbb90e48a4cc3814b820f7" title="Free all the memory allocated for an AVDictionary struct and all keys and values.">av_dict_free()</a> to free the dictionary and all its contents.</p>
<div class="fragment"><pre class="fragment">   <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *d = NULL;           <span class="comment">// &quot;create&quot; an empty dictionary</span>
   <a class="code" href="structAVDictionaryEntry.html">AVDictionaryEntry</a> *t = NULL;

   <a class="code" href="group__lavu__dict.html#ga8d9c2de72b310cef8e6a28c9cd3acbbe" title="Set the given entry in *pm, overwriting an existing entry.">av_dict_set</a>(&amp;d, <span class="stringliteral">&quot;foo&quot;</span>, <span class="stringliteral">&quot;bar&quot;</span>, 0); <span class="comment">// add an entry</span>

   <span class="keywordtype">char</span> *k = <a class="code" href="group__lavu__mem.html#ga7c352f4cff02184f005323691375fea9" title="Duplicate the string s.">av_strdup</a>(<span class="stringliteral">&quot;key&quot;</span>);       <span class="comment">// if your strings are already allocated,</span>
   <span class="keywordtype">char</span> *v = <a class="code" href="group__lavu__mem.html#ga7c352f4cff02184f005323691375fea9" title="Duplicate the string s.">av_strdup</a>(<span class="stringliteral">&quot;value&quot;</span>);     <span class="comment">// you can avoid copying them like this</span>
   <a class="code" href="group__lavu__dict.html#ga8d9c2de72b310cef8e6a28c9cd3acbbe" title="Set the given entry in *pm, overwriting an existing entry.">av_dict_set</a>(&amp;d, k, v, <a class="code" href="group__lavu__dict.html#gacb0ce4f20c15bf174f93590ace0fc8fd" title="Take ownership of a key that&#39;s been allocated with av_malloc() or another memory allocation function...">AV_DICT_DONT_STRDUP_KEY</a> | <a class="code" href="group__lavu__dict.html#ga7a9a991cb7837b10ffd44725263de425" title="Take ownership of a value that&#39;s been allocated with av_malloc() or another memory allocation functio...">AV_DICT_DONT_STRDUP_VAL</a>);

   <span class="keywordflow">while</span> (t = <a class="code" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3" title="Get a dictionary entry with matching key.">av_dict_get</a>(d, <span class="stringliteral">&quot;&quot;</span>, t, <a class="code" href="group__lavu__dict.html#ga341bbd1ea599dfb0510f419e5272fecc" title="Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string.">AV_DICT_IGNORE_SUFFIX</a>)) {
       &lt;....&gt;                             <span class="comment">// iterate over all entries in d</span>
   }
   <a class="code" href="group__lavu__dict.html#ga1bafd682b1fbb90e48a4cc3814b820f7" title="Free all the memory allocated for an AVDictionary struct and all keys and values.">av_dict_free</a>(&amp;d);
</pre></div> <hr/><h2>Define Documentation</h2>
<a class="anchor" id="gad9cbc53cec515b72ae7caa2e194c6bc0"></a><!-- doxytag: member="dict.h::AV_DICT_MATCH_CASE" ref="gad9cbc53cec515b72ae7caa2e194c6bc0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#gad9cbc53cec515b72ae7caa2e194c6bc0">AV_DICT_MATCH_CASE</a>&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Only get an entry with exact-case key match. </p>
<p>Only relevant in <a class="el" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3" title="Get a dictionary entry with matching key.">av_dict_get()</a>. </p>

<p>Definition at line <a class="el" href="dict_8h_source.html#l00071">71</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga341bbd1ea599dfb0510f419e5272fecc"></a><!-- doxytag: member="dict.h::AV_DICT_IGNORE_SUFFIX" ref="ga341bbd1ea599dfb0510f419e5272fecc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#ga341bbd1ea599dfb0510f419e5272fecc">AV_DICT_IGNORE_SUFFIX</a>&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return first entry in a dictionary whose first part corresponds to the search key, ignoring the suffix of the found key string. </p>
<p>Only relevant in <a class="el" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3" title="Get a dictionary entry with matching key.">av_dict_get()</a>. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="metadata_8c-example.html#a8">metadata.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="dict_8h_source.html#l00072">72</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

<p>Referenced by <a class="el" href="metadata_8c_source.html#l00034">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gacb0ce4f20c15bf174f93590ace0fc8fd"></a><!-- doxytag: member="dict.h::AV_DICT_DONT_STRDUP_KEY" ref="gacb0ce4f20c15bf174f93590ace0fc8fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#gacb0ce4f20c15bf174f93590ace0fc8fd">AV_DICT_DONT_STRDUP_KEY</a>&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Take ownership of a key that's been 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> or another memory allocation function. </p>

<p>Definition at line <a class="el" href="dict_8h_source.html#l00074">74</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga7a9a991cb7837b10ffd44725263de425"></a><!-- doxytag: member="dict.h::AV_DICT_DONT_STRDUP_VAL" ref="ga7a9a991cb7837b10ffd44725263de425" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#ga7a9a991cb7837b10ffd44725263de425">AV_DICT_DONT_STRDUP_VAL</a>&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Take ownership of a value that's been 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> or another memory allocation function. </p>

<p>Definition at line <a class="el" href="dict_8h_source.html#l00076">76</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga8ed4237acfc3d68484301a5d1859936c"></a><!-- doxytag: member="dict.h::AV_DICT_DONT_OVERWRITE" ref="ga8ed4237acfc3d68484301a5d1859936c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#ga8ed4237acfc3d68484301a5d1859936c">AV_DICT_DONT_OVERWRITE</a>&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Don't overwrite existing entries. </p>

<p>Definition at line <a class="el" href="dict_8h_source.html#l00078">78</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga64018c01d1e8c44d1d8c03dfb099f2c2"></a><!-- doxytag: member="dict.h::AV_DICT_APPEND" ref="ga64018c01d1e8c44d1d8c03dfb099f2c2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__lavu__dict.html#ga64018c01d1e8c44d1d8c03dfb099f2c2">AV_DICT_APPEND</a>&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>If the entry already exists, append to it. </p>
<p>Note that no delimiter is added, the strings are simply concatenated. </p>

<p>Definition at line <a class="el" href="dict_8h_source.html#l00079">79</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga1d7cc0833bee918994a600556410315f"></a><!-- doxytag: member="dict.h::AVDictionary" ref="ga1d7cc0833bee918994a600556410315f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="dict_8h_source.html#l00087">87</a> of file <a class="el" href="dict_8h_source.html">dict.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gae67f143237b2cb2936c9b147aa6dfde3"></a><!-- doxytag: member="dict.h::av_dict_get" ref="gae67f143237b2cb2936c9b147aa6dfde3" args="(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structAVDictionaryEntry.html">AVDictionaryEntry</a>* <a class="el" href="group__lavu__dict.html#gae67f143237b2cb2936c9b147aa6dfde3">av_dict_get</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structAVDictionaryEntry.html">AVDictionaryEntry</a> *&#160;</td>
          <td class="paramname"><em>prev</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>Get a dictionary entry with matching key. </p>
<p>The returned entry key or value must not be changed, or it will cause undefined behavior.</p>
<p>To iterate through all the dictionary entries, you can set the matching key to the null string "" and set the AV_DICT_IGNORE_SUFFIX flag.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">prev</td><td>Set to the previous matching element to find the next. If set to NULL the first matching element is returned. </td></tr>
    <tr><td class="paramname">key</td><td>matching key </td></tr>
    <tr><td class="paramname">flags</td><td>a collection of AV_DICT_* flags controlling how the entry is retrieved </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>found entry or NULL in case no matching entry was found in the dictionary </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="metadata_8c-example.html#a6">metadata.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="metadata_8c_source.html#l00034">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gad21456d6601aa096c7c78dce8848d50a"></a><!-- doxytag: member="dict.h::av_dict_count" ref="gad21456d6601aa096c7c78dce8848d50a" args="(const AVDictionary *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__lavu__dict.html#gad21456d6601aa096c7c78dce8848d50a">av_dict_count</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get number of entries in dictionary. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>dictionary </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of entries in dictionary </dd></dl>

</div>
</div>
<a class="anchor" id="ga8d9c2de72b310cef8e6a28c9cd3acbbe"></a><!-- doxytag: member="dict.h::av_dict_set" ref="ga8d9c2de72b310cef8e6a28c9cd3acbbe" args="(AVDictionary **pm, const char *key, const char *value, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__lavu__dict.html#ga8d9c2de72b310cef8e6a28c9cd3acbbe">av_dict_set</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **&#160;</td>
          <td class="paramname"><em>pm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</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>Set the given entry in *pm, overwriting an existing entry. </p>
<p>Note: If AV_DICT_DONT_STRDUP_KEY or AV_DICT_DONT_STRDUP_VAL is set, these arguments will be freed on error.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pm</td><td>pointer to a pointer to a dictionary struct. If *pm is NULL a dictionary struct is allocated and put in *pm. </td></tr>
    <tr><td class="paramname">key</td><td>entry key to add to *pm (will be av_strduped depending on flags) </td></tr>
    <tr><td class="paramname">value</td><td>entry value to add to *pm (will be av_strduped depending on flags). Passing a NULL value will cause an existing entry to be deleted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>&gt;= 0 on success otherwise an error code &lt;0 </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demuxing_decoding_8c-example.html#a63">demuxing_decoding.c</a>, <a class="el" href="filter_audio_8c-example.html#a21">filter_audio.c</a>, and <a class="el" href="muxing_8c-example.html#a134">muxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="filter__audio_8c_source.html#l00062">init_filter_graph()</a>, <a class="el" href="muxing_8c_source.html#l00556">main()</a>, and <a class="el" href="demuxing__decoding_8c_source.html#l00156">open_codec_context()</a>.</p>

</div>
</div>
<a class="anchor" id="gafd013a88620b2da7d497b083f6ea7d29"></a><!-- doxytag: member="dict.h::av_dict_set_int" ref="gafd013a88620b2da7d497b083f6ea7d29" args="(AVDictionary **pm, const char *key, int64_t value, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__lavu__dict.html#gafd013a88620b2da7d497b083f6ea7d29">av_dict_set_int</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **&#160;</td>
          <td class="paramname"><em>pm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>value</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>Convenience wrapper for av_dict_set that converts the value to a string and stores it. </p>
<p>Note: If AV_DICT_DONT_STRDUP_KEY is set, key will be freed on error. </p>

</div>
</div>
<a class="anchor" id="gaca5ff7c251e60bd13164d13c82f21b79"></a><!-- doxytag: member="dict.h::av_dict_parse_string" ref="gaca5ff7c251e60bd13164d13c82f21b79" args="(AVDictionary **pm, const char *str, const char *key_val_sep, const char *pairs_sep, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__lavu__dict.html#gaca5ff7c251e60bd13164d13c82f21b79">av_dict_parse_string</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **&#160;</td>
          <td class="paramname"><em>pm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>key_val_sep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pairs_sep</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>Parse the key/value pairs list and add the parsed entries to a dictionary. </p>
<p>In case of failure, all the successfully set entries are stored in *pm. You may need to manually free the created dictionary.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">key_val_sep</td><td>a 0-terminated list of characters used to separate key from value </td></tr>
    <tr><td class="paramname">pairs_sep</td><td>a 0-terminated list of characters used to separate two pairs from each other </td></tr>
    <tr><td class="paramname">flags</td><td>flags to use when adding to dictionary. AV_DICT_DONT_STRDUP_KEY and AV_DICT_DONT_STRDUP_VAL are ignored since the key/value tokens will always be duplicated. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, negative AVERROR code on failure </dd></dl>

</div>
</div>
<a class="anchor" id="ga6dabaab2d8a53674db6ffd5ac8de3d9f"></a><!-- doxytag: member="dict.h::av_dict_copy" ref="ga6dabaab2d8a53674db6ffd5ac8de3d9f" args="(AVDictionary **dst, const AVDictionary *src, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__lavu__dict.html#ga6dabaab2d8a53674db6ffd5ac8de3d9f">av_dict_copy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *&#160;</td>
          <td class="paramname"><em>src</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>Copy entries from one AVDictionary struct into another. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>pointer to a pointer to a AVDictionary struct. If *dst is NULL, this function will allocate a struct for you and put it in *dst </td></tr>
    <tr><td class="paramname">src</td><td>pointer to source AVDictionary struct </td></tr>
    <tr><td class="paramname">flags</td><td>flags to use when setting entries in *dst </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>metadata is read using the AV_DICT_IGNORE_SUFFIX flag </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="muxing_8c-example.html#a76">muxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="muxing_8c_source.html#l00209">open_audio()</a>, and <a class="el" href="muxing_8c_source.html#l00383">open_video()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1bafd682b1fbb90e48a4cc3814b820f7"></a><!-- doxytag: member="dict.h::av_dict_free" ref="ga1bafd682b1fbb90e48a4cc3814b820f7" args="(AVDictionary **m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__lavu__dict.html#ga1bafd682b1fbb90e48a4cc3814b820f7">av_dict_free</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free all the memory allocated for an AVDictionary struct and all keys and values. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="filter_audio_8c-example.html#a25">filter_audio.c</a>, and <a class="el" href="muxing_8c-example.html#a78">muxing.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="filter__audio_8c_source.html#l00062">init_filter_graph()</a>, <a class="el" href="muxing_8c_source.html#l00209">open_audio()</a>, and <a class="el" href="muxing_8c_source.html#l00383">open_video()</a>.</p>

</div>
</div>
<a class="anchor" id="ga480ab3fb3ac6cae8e60e97f58ec30b66"></a><!-- doxytag: member="dict.h::av_dict_get_string" ref="ga480ab3fb3ac6cae8e60e97f58ec30b66" args="(const AVDictionary *m, char **buffer, const char key_val_sep, const char pairs_sep)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__lavu__dict.html#ga480ab3fb3ac6cae8e60e97f58ec30b66">av_dict_get_string</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char&#160;</td>
          <td class="paramname"><em>key_val_sep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char&#160;</td>
          <td class="paramname"><em>pairs_sep</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get dictionary entries as a string. </p>
<p>Create a string containing dictionary's entries. Such string may be passed back to <a class="el" href="group__lavu__dict.html#gaca5ff7c251e60bd13164d13c82f21b79" title="Parse the key/value pairs list and add the parsed entries to a dictionary.">av_dict_parse_string()</a>. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>String is escaped with backslashes ('\').</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>dictionary </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>Pointer to buffer that will be allocated with string containg entries. Buffer must be freed by the caller when is no longer needed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">key_val_sep</td><td>character used to separate key from value </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pairs_sep</td><td>character used to separate two pairs from each other </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>&gt;= 0 on success, negative on error </dd></dl>
<dl class="warning"><dt><b>Warning:</b></dt><dd>Separators cannot be neither '\' nor '\0'. They also cannot be the same. </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">&#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>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 &#160;<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>