Repository URL to install this package:
Version:
7:2.7.1-1ubuntu2 ▾
|
<!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
 <span id="projectnumber">2.7.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><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> |
<a href="#define-members">Defines</a> |
<a href="#typedef-members">Typedefs</a> |
<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  </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gad9cbc53cec515b72ae7caa2e194c6bc0">AV_DICT_MATCH_CASE</a>   1</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga341bbd1ea599dfb0510f419e5272fecc">AV_DICT_IGNORE_SUFFIX</a>   2</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#gacb0ce4f20c15bf174f93590ace0fc8fd">AV_DICT_DONT_STRDUP_KEY</a>   4</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga7a9a991cb7837b10ffd44725263de425">AV_DICT_DONT_STRDUP_VAL</a>   8</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga8ed4237acfc3d68484301a5d1859936c">AV_DICT_DONT_OVERWRITE</a>   16</td></tr>
<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lavu__dict.html#ga64018c01d1e8c44d1d8c03dfb099f2c2">AV_DICT_APPEND</a>   32</td></tr>
<tr><td class="mdescLeft"> </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> </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> * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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">// "create" 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>(&d, <span class="stringliteral">"foo"</span>, <span class="stringliteral">"bar"</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">"key"</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">"value"</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>(&d, k, v, <a class="code" href="group__lavu__dict.html#gacb0ce4f20c15bf174f93590ace0fc8fd" title="Take ownership of a key that'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'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">""</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>)) {
<....> <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>(&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>   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>   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>   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>   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>   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>   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> * </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </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> * </td>
<td class="paramname"><em>prev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>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> * </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> ** </td>
<td class="paramname"><em>pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>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>>= 0 on success otherwise an error code <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> ** </td>
<td class="paramname"><em>pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t </td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>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> ** </td>
<td class="paramname"><em>pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>key_val_sep</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>pairs_sep</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>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> ** </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> * </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>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> ** </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> * </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char </td>
<td class="paramname"><em>key_val_sep</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char </td>
<td class="paramname"><em>pairs_sep</em> </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>>= 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>