<!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"/> <title>oRTP: include/ortp/ortp.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </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">oRTP  <span id="projectnumber">0.20.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- Generated by Doxygen 1.7.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</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> </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="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">include/ortp/ortp.h File Reference</div> </div> </div> <div class="contents"> <p>General purpose library functions. <a href="#details">More...</a></p> <div class="textblock"><code>#include "<a class="el" href="rtpsession_8h_source.html">ortp/rtpsession.h</a>"</code><br/> <code>#include "<a class="el" href="sessionset_8h_source.html">ortp/sessionset.h</a>"</code><br/> </div><div class="textblock"><div class="dynheader"> Include dependency graph for ortp.h:</div> <div class="dyncontent"> <div class="center"><img src="ortp_8h__incl.png" border="0" usemap="#include_2ortp_2ortp_8h" alt=""/></div> <map name="include_2ortp_2ortp_8h" id="include_2ortp_2ortp_8h"> <area shape="rect" id="node3" href="rtpsession_8h.html" title="The RtpSession api." alt="" coords="867,80,985,107"/><area shape="rect" id="node42" href="sessionset_8h.html" title="Sending and receiving multiple streams together with only one thread." alt="" coords="1047,229,1169,256"/><area shape="rect" id="node5" href="port_8h_source.html" title="ortp/port.h" alt="" coords="611,304,692,331"/><area shape="rect" id="node33" href="rtp_8h_source.html" title="ortp/rtp.h" alt="" coords="543,155,616,181"/><area shape="rect" id="node36" href="str__utils_8h_source.html" title="ortp/str_utils.h" alt="" coords="609,229,713,256"/><area shape="rect" id="node39" href="payloadtype_8h.html" title="Using and creating standart and custom RTP profiles." alt="" coords="751,229,880,256"/><area shape="rect" id="node48" href="rtcp_8h_source.html" title="ortp/rtcp.h" alt="" coords="933,229,1013,256"/><area shape="rect" id="node52" href="rtpsignaltable_8h_source.html" title="ortp/rtpsignaltable.h" alt="" coords="807,155,941,181"/><area shape="rect" id="node54" href="event_8h_source.html" title="ortp/event.h" alt="" coords="692,155,783,181"/></map> </div> </div> <p><a href="ortp_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"><a class="anchor" id="a1a233a1f9c4efa4476b25d6829551e5e"></a><!-- doxytag: member="ortp.h::ortp_log_level_enabled" ref="a1a233a1f9c4efa4476b25d6829551e5e" args="(level)" --> #define </td><td class="memItemRight" valign="bottom"><b>ortp_log_level_enabled</b>(level)   (__ortp_log_mask & (level))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b>(level, fmt, args)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af885559332da80916395dd53c4f27879"></a><!-- doxytag: member="ortp.h::CHECK_FORMAT_ARGS" ref="af885559332da80916395dd53c4f27879" args="(m, n)" --> #define </td><td class="memItemRight" valign="bottom"><b>CHECK_FORMAT_ARGS</b>(m, n)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38c6b17390bcc5c146b0b33d9326875d"></a><!-- doxytag: member="ortp.h::ortp_debug" ref="a38c6b17390bcc5c146b0b33d9326875d" args="(...)" --> #define </td><td class="memItemRight" valign="bottom"><b>ortp_debug</b>(...)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5fd949980e4b8c46ce0212c81cf00ff"></a><!-- doxytag: member="ortp.h::ORTP_PUBLIC" ref="ab5fd949980e4b8c46ce0212c81cf00ff" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>ORTP_PUBLIC</b></td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fadafbc3fc1ee34f2fa50286e911a65"></a><!-- doxytag: member="ortp.h::OrtpLogFunc" ref="a6fadafbc3fc1ee34f2fa50286e911a65" args=")(OrtpLogLevel lev, const char *fmt, va_list args)" --> typedef void(* </td><td class="memItemRight" valign="bottom"><b>OrtpLogFunc</b> )(OrtpLogLevel lev, const char *fmt, va_list args)</td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>OrtpLogLevel</b> { <br/>   <b>ORTP_DEBUG</b> = 1, <b>ORTP_MESSAGE</b> = 1<<1, <b>ORTP_WARNING</b> = 1<<2, <b>ORTP_ERROR</b> = 1<<3, <br/>   <b>ORTP_FATAL</b> = 1<<4, <b>ORTP_LOGLEV_END</b> = 1<<5 <br/> }</td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#aa04f26740f760e228c4443fbfdd4f5ea">ortp_min_version_required</a> (int major, int minor, int micro)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#ab415c0a8f20298e82e76dcea13a745b5">ortp_init</a> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#a5e141585e75d0b7fca43797088f2b04e">ortp_scheduler_init</a> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#abb4e3cb949ec64f2ff4a50c093d86852">ortp_exit</a> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#a66ad4c89d7ec7b9416b11185681afd40">ortp_set_log_file</a> (FILE *file)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#a7301354f577d0e414cb7bdc2cfa96dc8">ortp_set_log_handler</a> (OrtpLogFunc func)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#a5ae5adf0581a5cea83a7f72979f8c99d">ortp_set_log_level_mask</a> (int levelmask)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65efb3c4d9efc26f0b8e76723814e52f"></a><!-- doxytag: member="ortp.h::ortp_global_stats_reset" ref="a65efb3c4d9efc26f0b8e76723814e52f" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>ortp_global_stats_reset</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad85430e4ac2d58bed0161c8085e16ee3"></a><!-- doxytag: member="ortp.h::ortp_get_global_stats" ref="ad85430e4ac2d58bed0161c8085e16ee3" args="(void)" --> <a class="el" href="structrtp__stats.html">rtp_stats_t</a> * </td><td class="memItemRight" valign="bottom"><b>ortp_get_global_stats</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#ad2233a20047fbd0912caad6dc2e1291e">ortp_global_stats_display</a> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ortp_8h.html#ad4b2b584a56ce6251ba3b6cf9df02c3e">rtp_stats_display</a> (const <a class="el" href="structrtp__stats.html">rtp_stats_t</a> *stats, const char *header)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9840903a5632f77514f0e12af04f3abf"></a><!-- doxytag: member="ortp.h::rtp_stats_reset" ref="a9840903a5632f77514f0e12af04f3abf" args="(rtp_stats_t *stats)" --> void </td><td class="memItemRight" valign="bottom"><b>rtp_stats_reset</b> (<a class="el" href="structrtp__stats.html">rtp_stats_t</a> *stats)</td></tr> <tr><td colspan="2"><h2><a name="var-members"></a> Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a338ee7edf9d081ac370c39d7c7db4077"></a><!-- doxytag: member="ortp.h::ortp_logv_out" ref="a338ee7edf9d081ac370c39d7c7db4077" args="" --> VAR_DECLSPEC OrtpLogFunc </td><td class="memItemRight" valign="bottom"><b>ortp_logv_out</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add47ca30e43c5f87ba60901104281d76"></a><!-- doxytag: member="ortp.h::__ortp_log_mask" ref="add47ca30e43c5f87ba60901104281d76" args="" --> unsigned int </td><td class="memItemRight" valign="bottom"><b>__ortp_log_mask</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf68afc8085d4aeb4c638870f9bae8a4"></a><!-- doxytag: member="ortp.h::fmt" ref="adf68afc8085d4aeb4c638870f9bae8a4" args="" --> static void const char * </td><td class="memItemRight" valign="bottom"><b>fmt</b></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>General purpose library functions. </p> </div><hr/><h2>Define Documentation</h2> <a class="anchor" id="a504f7e404e099905bca5498b88ee5f5c"></a><!-- doxytag: member="ortp.h::ortp_logv" ref="a504f7e404e099905bca5498b88ee5f5c" args="(level, fmt, args)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ortp_logv</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">level, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">fmt, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">args </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">{\ if (ortp_logv_out!=NULL && ortp_log_level_enabled(level)) \ ortp_logv_out(level,fmt,args);\ if ((level)==ORTP_FATAL) abort();\ }while(0) </pre></div> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="abb4e3cb949ec64f2ff4a50c093d86852"></a><!-- doxytag: member="ortp.h::ortp_exit" ref="abb4e3cb949ec64f2ff4a50c093d86852" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_exit </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Gracefully uninitialize the library, including shutdowning the scheduler if it was started. </p> </div> </div> <a class="anchor" id="ad2233a20047fbd0912caad6dc2e1291e"></a><!-- doxytag: member="ortp.h::ortp_global_stats_display" ref="ad2233a20047fbd0912caad6dc2e1291e" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_global_stats_display </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Display global statistics (cumulative for all RtpSession) </p> </div> </div> <a class="anchor" id="ab415c0a8f20298e82e76dcea13a745b5"></a><!-- doxytag: member="ortp.h::ortp_init" ref="ab415c0a8f20298e82e76dcea13a745b5" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_init </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the oRTP library. You should call this function first before using oRTP API. </p> </div> </div> <a class="anchor" id="aa04f26740f760e228c4443fbfdd4f5ea"></a><!-- doxytag: member="ortp.h::ortp_min_version_required" ref="aa04f26740f760e228c4443fbfdd4f5ea" args="(int major, int minor, int micro)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool_t ortp_min_version_required </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>major</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>minor</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>micro</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>This function give the opportunity to programs to check if the libortp they link to has the minimum version number they need.</p> <p>Returns: true if ortp has a version number greater or equal than the required one. </p> </div> </div> <a class="anchor" id="a5e141585e75d0b7fca43797088f2b04e"></a><!-- doxytag: member="ortp.h::ortp_scheduler_init" ref="a5e141585e75d0b7fca43797088f2b04e" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_scheduler_init </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the oRTP scheduler. You only have to do that if you intend to use the scheduled mode of the #RtpSession in your application. </p> </div> </div> <a class="anchor" id="a66ad4c89d7ec7b9416b11185681afd40"></a><!-- doxytag: member="ortp.h::ortp_set_log_file" ref="a66ad4c89d7ec7b9416b11185681afd40" args="(FILE *file)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_set_log_file </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"><em>file</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>a FILE pointer where to output the ortp logs. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a7301354f577d0e414cb7bdc2cfa96dc8"></a><!-- doxytag: member="ortp.h::ortp_set_log_handler" ref="a7301354f577d0e414cb7bdc2cfa96dc8" args="(OrtpLogFunc func)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_set_log_handler </td> <td>(</td> <td class="paramtype">OrtpLogFunc </td> <td class="paramname"><em>func</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">func,:</td><td>your logging function, compatible with the OrtpLogFunc prototype. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a5ae5adf0581a5cea83a7f72979f8c99d"></a><!-- doxytag: member="ortp.h::ortp_set_log_level_mask" ref="a5ae5adf0581a5cea83a7f72979f8c99d" args="(int levelmask)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ortp_set_log_level_mask </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>levelmask</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>@ param levelmask a mask of ORTP_DEBUG, ORTP_MESSAGE, ORTP_WARNING, ORTP_ERROR ORTP_FATAL . </p> </div> </div> <a class="anchor" id="ad4b2b584a56ce6251ba3b6cf9df02c3e"></a><!-- doxytag: member="ortp.h::rtp_stats_display" ref="ad4b2b584a56ce6251ba3b6cf9df02c3e" args="(const rtp_stats_t *stats, const char *header)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rtp_stats_display </td> <td>(</td> <td class="paramtype">const <a class="el" href="structrtp__stats.html">rtp_stats_t</a> * </td> <td class="paramname"><em>stats</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>header</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Print RTP statistics. </p> </div> </div> </div> <hr class="footer"/><address class="footer"><small> Generated on Sat Feb 25 2012 10:01:30 for oRTP by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.7.5 </small></address> </body> </html>