Repository URL to install this package:
Version:
7:2.7.1-1ubuntu3 ▾
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FFmpeg: libavutil/bprint.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FFmpeg
 <span id="projectnumber">2.7.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">libavutil/bprint.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include <stdarg.h></code><br/>
<code>#include "<a class="el" href="attributes_8h_source.html">attributes.h</a>"</code><br/>
<code>#include "<a class="el" href="avstring_8h_source.html">avstring.h</a>"</code><br/>
</div>
<p><a href="bprint_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<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="bprint_8h.html#a89675bde26f19bdd3775f9085a96ea05">FF_PAD_STRUCTURE</a>(name, size,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Define a structure with extra padding to a fixed size This helps ensuring binary compatibility with future versions. <a href="#a89675bde26f19bdd3775f9085a96ea05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a01aefbce0615a828eae24135a9b35c45">AV_BPRINT_SIZE_UNLIMITED</a>   ((unsigned)-1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a0e07836126dff024ac10acbc744ebe8f">AV_BPRINT_SIZE_AUTOMATIC</a>   1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a5764f3aa498fb83dafdebadf7e77d5fa">AV_BPRINT_SIZE_COUNT_ONLY</a>   0</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a6aa38da4460d5eded81c6d738cc9bd13">FF_PAD_STRUCTURE</a> (AVBPrint, 1024, char *str;unsigned len;unsigned size;unsigned <a class="el" href="bprint_8h.html#acf8cd3996e691221ed7bdb8310ea2fc2">size_max</a>;char reserved_internal_buffer[1];) void av_bprint_init(AVBPrint *buf</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Buffer to print data progressively. <a href="#a6aa38da4460d5eded81c6d738cc9bd13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#af70c16532f4ba50c599e4eaa67a1d63b">av_bprint_init_for_buffer</a> (AVBPrint *buf, char *buffer, unsigned size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Init a print buffer using a pre-existing buffer. <a href="#af70c16532f4ba50c599e4eaa67a1d63b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#aa2e89377fd7c92db534f29caff1af209">av_bprintf</a> (AVBPrint *buf, const char *fmt,...) <a class="el" href="attributes_8h.html#a4b078d4b8e02c0f452ee1dcaa7d983d3">av_printf_format</a>(2</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append a formatted string to a print buffer. <a href="#aa2e89377fd7c92db534f29caff1af209"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#ae24ca62b5e2ba99651636c04b61240f1">av_vbprintf</a> (AVBPrint *buf, const char *fmt, va_list vl_arg)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append a formatted string to a print buffer. <a href="#ae24ca62b5e2ba99651636c04b61240f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#aabc9a9d58de61dd824e625d59a7531bb">av_bprint_chars</a> (AVBPrint *buf, char c, unsigned n)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append char c n times to a print buffer. <a href="#aabc9a9d58de61dd824e625d59a7531bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#aa215ba46a975d996e483cf0b9dcc85e5">av_bprint_append_data</a> (AVBPrint *buf, const char *data, unsigned size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append data to a print buffer. <a href="#aa215ba46a975d996e483cf0b9dcc85e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a4896e4efea5b234507bcbba45ca0397b">av_bprint_strftime</a> (AVBPrint *buf, const char *fmt, const struct tm *tm)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Append a formatted date and time to a print buffer. <a href="#a4896e4efea5b234507bcbba45ca0397b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a32f3999614d90e082602d54a3c5237d6">av_bprint_get_buffer</a> (AVBPrint *buf, unsigned size, unsigned char **mem, unsigned *actual_size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate bytes in the buffer for external use. <a href="#a32f3999614d90e082602d54a3c5237d6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#ab1c28dbff5990dbd37e6c00e3d7c438b">av_bprint_clear</a> (AVBPrint *buf)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reset the string to "" but keep internal allocated data. <a href="#ab1c28dbff5990dbd37e6c00e3d7c438b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a07432f704c49a6fa636197e2aa80bac0">av_bprint_is_complete</a> (const AVBPrint *buf)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Test if the print buffer is complete (not truncated). <a href="#a07432f704c49a6fa636197e2aa80bac0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a3fd45f50d9d4f7cc8fed5331a37f47ea">av_bprint_finalize</a> (AVBPrint *buf, char **ret_str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finalize a print buffer. <a href="#a3fd45f50d9d4f7cc8fed5331a37f47ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a14ec58eeaa6d4a3571cd9f0ffb873e62">av_bprint_escape</a> (AVBPrint *dstbuf, 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><td class="mdescLeft"> </td><td class="mdescRight">Escape the content in src and append it to dstbuf. <a href="#a14ec58eeaa6d4a3571cd9f0ffb873e62"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#a938b4c4eed995775474a106731647736">size_init</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="bprint_8h.html#acf8cd3996e691221ed7bdb8310ea2fc2">size_max</a></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a89675bde26f19bdd3775f9085a96ea05"></a><!-- doxytag: member="bprint.h::FF_PAD_STRUCTURE" ref="a89675bde26f19bdd3775f9085a96ea05" args="(name, size,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="bprint_8h.html#a6aa38da4460d5eded81c6d738cc9bd13">FF_PAD_STRUCTURE</a></td>
<td>(</td>
<td class="paramtype"> </td>
<td class="paramname">name, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname">size, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"><em>...</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">struct </span>ff_pad_helper_##name { __VA_ARGS__ }; \
typedef <span class="keyword">struct </span>name { \
__VA_ARGS__ \
char reserved_padding[size - <span class="keyword">sizeof</span>(<span class="keyword">struct </span>ff_pad_helper_##name)]; \
} name;
</pre></div>
<p>Define a structure with extra padding to a fixed size This helps ensuring binary compatibility with future versions. </p>
<p>Definition at line <a class="el" href="bprint_8h_source.html#l00034">34</a> of file <a class="el" href="bprint_8h_source.html">bprint.h</a>.</p>
</div>
</div>
<a class="anchor" id="a01aefbce0615a828eae24135a9b35c45"></a><!-- doxytag: member="bprint.h::AV_BPRINT_SIZE_UNLIMITED" ref="a01aefbce0615a828eae24135a9b35c45" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="bprint_8h.html#a01aefbce0615a828eae24135a9b35c45">AV_BPRINT_SIZE_UNLIMITED</a>   ((unsigned)-1)</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a0e07836126dff024ac10acbc744ebe8f"></a><!-- doxytag: member="bprint.h::AV_BPRINT_SIZE_AUTOMATIC" ref="a0e07836126dff024ac10acbc744ebe8f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="bprint_8h.html#a0e07836126dff024ac10acbc744ebe8f">AV_BPRINT_SIZE_AUTOMATIC</a>   1</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a5764f3aa498fb83dafdebadf7e77d5fa"></a><!-- doxytag: member="bprint.h::AV_BPRINT_SIZE_COUNT_ONLY" ref="a5764f3aa498fb83dafdebadf7e77d5fa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="bprint_8h.html#a5764f3aa498fb83dafdebadf7e77d5fa">AV_BPRINT_SIZE_COUNT_ONLY</a>   0</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a6aa38da4460d5eded81c6d738cc9bd13"></a><!-- doxytag: member="bprint.h::FF_PAD_STRUCTURE" ref="a6aa38da4460d5eded81c6d738cc9bd13" args="(AVBPrint, 1024, char *str;unsigned len;unsigned size;unsigned size_max;char reserved_internal_buffer[1];) void av_bprint_init(AVBPrint *buf" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="bprint_8h.html#a6aa38da4460d5eded81c6d738cc9bd13">FF_PAD_STRUCTURE</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">1024 </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *str;unsigned len;unsigned size;unsigned <a class="el" href="bprint_8h.html#acf8cd3996e691221ed7bdb8310ea2fc2">size_max</a>;char reserved_internal_buffer; </td>
<td class="paramname">[1] </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Buffer to print data progressively. </p>
<p>The string buffer grows as necessary and is always 0-terminated. The content of the string is never accessed, and thus is encoding-agnostic and can even hold binary data.</p>
<p>Small buffers are kept in the structure itself, and thus require no memory allocation at all (unless the contents of the buffer is needed after the structure goes out of scope). This is almost as lightweight as declaring a local "char buf[512]".</p>
<p>The length of the string can go beyond the allocated size: the buffer is then truncated, but the functions still keep account of the actual total length.</p>
<p>In other words, buf->len can be greater than buf->size and records the total length of what would have been to the buffer if there had been enough memory.</p>
<p>Append operations do not need to be tested for failure: if a memory allocation fails, data stop being appended to the buffer, but the length is still updated. This situation can be tested with <a class="el" href="bprint_8h.html#a07432f704c49a6fa636197e2aa80bac0" title="Test if the print buffer is complete (not truncated).">av_bprint_is_complete()</a>.</p>
<p>The size_max field determines several possible behaviours:</p>
<p>size_max = -1 (= UINT_MAX) or any large value will let the buffer be reallocated as necessary, with an amortized linear cost.</p>
<p>size_max = 0 prevents writing anything to the buffer: only the total length is computed. The write operations can then possibly be repeated in a buffer with exactly the necessary size (using size_init = size_max = len + 1).</p>
<p>size_max = 1 is automatically replaced by the exact size available in the structure itself, thus ensuring no dynamic memory allocation. The internal buffer is large enough to hold a reasonable paragraph of text, such as the current paragraph. Convenience macros for special values for av_bprint_init() size_max parameter. Init a print buffer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>buffer to init </td></tr>
<tr><td class="paramname">size_init</td><td>initial size (including the final 0) </td></tr>
<tr><td class="paramname">size_max</td><td>maximum size; 0 means do not write anything, just count the length; 1 is replaced by the maximum value for automatic storage; any large value means that the internal buffer will be reallocated as needed up to that limit; -1 is converted to UINT_MAX, the largest limit possible. Check also AV_BPRINT_SIZE_* macros. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af70c16532f4ba50c599e4eaa67a1d63b"></a><!-- doxytag: member="bprint.h::av_bprint_init_for_buffer" ref="af70c16532f4ba50c599e4eaa67a1d63b" args="(AVBPrint *buf, char *buffer, unsigned size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#af70c16532f4ba50c599e4eaa67a1d63b">av_bprint_init_for_buffer</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</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">unsigned </td>
<td class="paramname"><em>size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Init a print buffer using a pre-existing buffer. </p>
<p>The buffer will not be reallocated.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>buffer structure to init </td></tr>
<tr><td class="paramname">buffer</td><td>byte buffer to use for the string data </td></tr>
<tr><td class="paramname">size</td><td>size of buffer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa2e89377fd7c92db534f29caff1af209"></a><!-- doxytag: member="bprint.h::av_bprintf" ref="aa2e89377fd7c92db534f29caff1af209" args="(AVBPrint *buf, const char *fmt,...) av_printf_format(2" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#aa2e89377fd7c92db534f29caff1af209">av_bprintf</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"><em>...</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Append a formatted string to a print buffer. </p>
</div>
</div>
<a class="anchor" id="ae24ca62b5e2ba99651636c04b61240f1"></a><!-- doxytag: member="bprint.h::av_vbprintf" ref="ae24ca62b5e2ba99651636c04b61240f1" args="(AVBPrint *buf, const char *fmt, va_list vl_arg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void void <a class="el" href="bprint_8h.html#ae24ca62b5e2ba99651636c04b61240f1">av_vbprintf</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list </td>
<td class="paramname"><em>vl_arg</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Append a formatted string to a print buffer. </p>
</div>
</div>
<a class="anchor" id="aabc9a9d58de61dd824e625d59a7531bb"></a><!-- doxytag: member="bprint.h::av_bprint_chars" ref="aabc9a9d58de61dd824e625d59a7531bb" args="(AVBPrint *buf, char c, unsigned n)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#aabc9a9d58de61dd824e625d59a7531bb">av_bprint_chars</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char </td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned </td>
<td class="paramname"><em>n</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Append char c n times to a print buffer. </p>
</div>
</div>
<a class="anchor" id="aa215ba46a975d996e483cf0b9dcc85e5"></a><!-- doxytag: member="bprint.h::av_bprint_append_data" ref="aa215ba46a975d996e483cf0b9dcc85e5" args="(AVBPrint *buf, const char *data, unsigned size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#aa215ba46a975d996e483cf0b9dcc85e5">av_bprint_append_data</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned </td>
<td class="paramname"><em>size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Append data to a print buffer. </p>
<p>param buf bprint buffer to use param data pointer to data param size size of data </p>
</div>
</div>
<a class="anchor" id="a4896e4efea5b234507bcbba45ca0397b"></a><!-- doxytag: member="bprint.h::av_bprint_strftime" ref="a4896e4efea5b234507bcbba45ca0397b" args="(AVBPrint *buf, const char *fmt, const struct tm *tm)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#a4896e4efea5b234507bcbba45ca0397b">av_bprint_strftime</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct tm * </td>
<td class="paramname"><em>tm</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Append a formatted date and time to a print buffer. </p>
<p>param buf bprint buffer to use param fmt date and time format string, see strftime() param tm broken-down time structure to translate</p>
<dl class="note"><dt><b>Note:</b></dt><dd>due to poor design of the standard strftime function, it may produce poor results if the format string expands to a very long text and the bprint buffer is near the limit stated by the size_max option. </dd></dl>
</div>
</div>
<a class="anchor" id="a32f3999614d90e082602d54a3c5237d6"></a><!-- doxytag: member="bprint.h::av_bprint_get_buffer" ref="a32f3999614d90e082602d54a3c5237d6" args="(AVBPrint *buf, unsigned size, unsigned char **mem, unsigned *actual_size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#a32f3999614d90e082602d54a3c5237d6">av_bprint_get_buffer</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned </td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char ** </td>
<td class="paramname"><em>mem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned * </td>
<td class="paramname"><em>actual_size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate bytes in the buffer for external use. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>buffer structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>required size </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">mem</td><td>pointer to the memory area </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">actual_size</td><td>size of the memory area after allocation; can be larger or smaller than size </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab1c28dbff5990dbd37e6c00e3d7c438b"></a><!-- doxytag: member="bprint.h::av_bprint_clear" ref="ab1c28dbff5990dbd37e6c00e3d7c438b" args="(AVBPrint *buf)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#ab1c28dbff5990dbd37e6c00e3d7c438b">av_bprint_clear</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reset the string to "" but keep internal allocated data. </p>
</div>
</div>
<a class="anchor" id="a07432f704c49a6fa636197e2aa80bac0"></a><!-- doxytag: member="bprint.h::av_bprint_is_complete" ref="a07432f704c49a6fa636197e2aa80bac0" args="(const AVBPrint *buf)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static int <a class="el" href="bprint_8h.html#a07432f704c49a6fa636197e2aa80bac0">av_bprint_is_complete</a> </td>
<td>(</td>
<td class="paramtype">const AVBPrint * </td>
<td class="paramname"><em>buf</em></td><td>)</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Test if the print buffer is complete (not truncated). </p>
<p>It may have been truncated due to a memory allocation failure or the size_max limit (compare size and size_max if necessary). </p>
<p>Definition at line <a class="el" href="bprint_8h_source.html#l00185">185</a> of file <a class="el" href="bprint_8h_source.html">bprint.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3fd45f50d9d4f7cc8fed5331a37f47ea"></a><!-- doxytag: member="bprint.h::av_bprint_finalize" ref="a3fd45f50d9d4f7cc8fed5331a37f47ea" args="(AVBPrint *buf, char **ret_str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="bprint_8h.html#a3fd45f50d9d4f7cc8fed5331a37f47ea">av_bprint_finalize</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>ret_str</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Finalize a print buffer. </p>
<p>The print buffer can no longer be used afterwards, but the len and size fields are still valid.</p>
<ul>
<li>[out] ret_str if not NULL, used to return a permanent copy of the buffer contents, or NULL if memory allocation fails; if NULL, the buffer is discarded and freed <dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code (probably <a class="el" href="group__lavu__error.html#gae4bb6f165973d09584e0ec0f335f69ca">AVERROR(ENOMEM)</a>) </dd></dl>
</li>
</ul>
</div>
</div>
<a class="anchor" id="a14ec58eeaa6d4a3571cd9f0ffb873e62"></a><!-- doxytag: member="bprint.h::av_bprint_escape" ref="a14ec58eeaa6d4a3571cd9f0ffb873e62" args="(AVBPrint *dstbuf, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="bprint_8h.html#a14ec58eeaa6d4a3571cd9f0ffb873e62">av_bprint_escape</a> </td>
<td>(</td>
<td class="paramtype">AVBPrint * </td>
<td class="paramname"><em>dstbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </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> </td>
<td class="paramname"><em>mode</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>Escape the content in src and append it to dstbuf. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">dstbuf</td><td>already inited destination bprint buffer </td></tr>
<tr><td class="paramname">src</td><td>string containing the text to escape </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>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a938b4c4eed995775474a106731647736"></a><!-- doxytag: member="bprint.h::size_init" ref="a938b4c4eed995775474a106731647736" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="bprint_8h.html#a938b4c4eed995775474a106731647736">size_init</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="bprint_8h_source.html#l00111">111</a> of file <a class="el" href="bprint_8h_source.html">bprint.h</a>.</p>
</div>
</div>
<a class="anchor" id="acf8cd3996e691221ed7bdb8310ea2fc2"></a><!-- doxytag: member="bprint.h::size_max" ref="acf8cd3996e691221ed7bdb8310ea2fc2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned unsigned <a class="el" href="bprint_8h.html#acf8cd3996e691221ed7bdb8310ea2fc2">size_max</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="bprint_8h_source.html#l00111">111</a> of file <a class="el" href="bprint_8h_source.html">bprint.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>