⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 payloads.sgml

📁 linphone源码-1.3.5.tar.gz所需要的库文件
💻 SGML
字号:
<refentry id="ortp-RTP-payloads-and-profiles"><refmeta><refentrytitle>RTP payloads and profiles</refentrytitle><manvolnum>3</manvolnum><refmiscinfo>ORTP Library</refmiscinfo></refmeta><refnamediv><refname>RTP payloads and profiles</refname><refpurpose>This section describes the way that the oRTP stack manages RTP profiles and payload types.</refpurpose></refnamediv><refsynopsisdiv><title>Synopsis</title><synopsis>#include &lt;payloadtype.h&gt;            <link linkend="PayloadType">PayloadType</link>;            <link linkend="RtpProfile">RtpProfile</link>;extern      RtpProfile <link linkend="av-profile">av_profile</link>;#define     <link linkend="rtp-profile-clear-all">rtp_profile_clear_all</link>           (profile)#define     <link linkend="rtp-profile-get-name">rtp_profile_get_name</link>            (profile)<link linkend="void">void</link>        <link linkend="rtp-profile-set-name">rtp_profile_set_name</link>            (<link linkend="RtpProfile">RtpProfile</link> *prof,                                             const <link linkend="char">char</link> *name);#define     <link linkend="rtp-profile-set-payload">rtp_profile_set_payload</link>         (profile,index,pt)#define     <link linkend="rtp-profile-get-payload">rtp_profile_get_payload</link>         (profile,index)#define     <link linkend="rtp-profile-clear-payload">rtp_profile_clear_payload</link>       (profile,index)</synopsis></refsynopsisdiv><refsect1><title>Description</title><para>A rtp payload type is a number between 0 and 127 that identifies a particular payload (GSM, PCMU, MPEG,...) within a given rtp profile. The <link linkend="PayloadType"><type>PayloadType</type></link> object in oRTP describesa payload.An RTP profile is a table that assigns particular payloads (GSM, MPEG...) to a payload typenumber within the range 0..127. In oRTP, profiles are represented by the <link linkend="RtpProfile"><type>RtpProfile</type></link> object.For example in the AV profile (Audio Video profile, defined in RFC1890), often used by telephony applications, the payload type number 8 is assigned to PCMA (A-law compressed audio) at sampling frequency 8000 Hz, mono.By default, all RTP sessions created by oRTP use the AV profile, but you can change the profileof an RTP session using <link linkend="rtp-session-set-profile"><function>rtp_session_set_profile()</function></link>.</para></refsect1><refsect1><title>Details</title><refsect2><title><anchor id="PayloadType">PayloadType</title><indexterm><primary>PayloadType</primary></indexterm><programlisting>typedef struct {	gint type;	#define PAYLOAD_AUDIO_CONTINUOUS 0	#define PAYLOAD_AUDIO_PACKETIZED 1	#define	PAYLOAD_VIDEO 2	#define PAYLOAD_OTHER 3  /* ?? */	gint clock_rate;	char bits_per_sample;		/* in case of continuous audio data */	char *zero_pattern;	gint pattern_length;	/* other usefull information */	gint normal_bitrate;	/*in bit/s */	char *mime_type;	char *fmtp;	/*various parameters, as a string */	PayloadTypeFlags flags;	void *user_data;} PayloadType;</programlisting><para></para></refsect2><refsect2><title><anchor id="RtpProfile">RtpProfile</title><indexterm><primary>RtpProfile</primary></indexterm><programlisting>typedef struct {	char *name;	PayloadType *payload[RTP_PROFILE_MAX_PAYLOADS];} RtpProfile;</programlisting><para></para></refsect2><refsect2><title><anchor id="av-profile">av_profile</title><indexterm><primary>av_profile</primary></indexterm><programlisting>extern RtpProfile av_profile;</programlisting><para>This is the Audio Video profile defined in RFC1890.</para></refsect2><refsect2><title><anchor id="rtp-profile-clear-all">rtp_profile_clear_all()</title><indexterm><primary>rtp_profile_clear_all</primary></indexterm><programlisting>#define rtp_profile_clear_all(profile)	memset((void*)(profile),0,sizeof(RtpProfile))</programlisting><para>Initialize the profile to the empty profile (all payload type are unassigned).</para><para></para><variablelist role="params"><varlistentry><term><parameter>profile</parameter>&nbsp;:</term><listitem><simpara> an RTP profile (<link linkend="RtpProfile"><type>RtpProfile</type></link> object)</simpara></listitem></varlistentry></variablelist></refsect2><refsect2><title><anchor id="rtp-profile-get-name">rtp_profile_get_name()</title><indexterm><primary>rtp_profile_get_name</primary></indexterm><programlisting>#define rtp_profile_get_name(profile) 	(const char*)((profile)-&gt;name)</programlisting><para></para><para></para><variablelist role="params"><varlistentry><term><parameter>profile</parameter>&nbsp;:</term><listitem><simpara>		a rtp profile object (<link linkend="RtpProfile"><type>RtpProfile</type></link>)</simpara></listitem></varlistentry></variablelist></refsect2><refsect2><title><anchor id="rtp-profile-set-name">rtp_profile_set_name ()</title><indexterm><primary>rtp_profile_set_name</primary></indexterm><programlisting><link linkend="void">void</link>        rtp_profile_set_name            (<link linkend="RtpProfile">RtpProfile</link> *prof,                                             const <link linkend="char">char</link> *name);</programlisting><para>Set a name to the rtp profile. (This is not required)</para><para></para><variablelist role="params"><varlistentry><term><parameter>prof</parameter>&nbsp;:</term><listitem><simpara></simpara></listitem></varlistentry><varlistentry><term><parameter>name</parameter>&nbsp;:</term><listitem><simpara></simpara></listitem></varlistentry></variablelist></refsect2><refsect2><title><anchor id="rtp-profile-set-payload">rtp_profile_set_payload()</title><indexterm><primary>rtp_profile_set_payload</primary></indexterm><programlisting>#define rtp_profile_set_payload(profile,index,pt)  (profile)-&gt;payload[(index)]=(pt)</programlisting><para>Assign payload type number <parameter>index</parameter> to payload type desribed in <parameter>pt</parameter> for the RTP profile<parameter>profile</parameter>.</para><para></para><variablelist role="params"><varlistentry><term><parameter>profile</parameter>&nbsp;:</term><listitem><simpara> an RTP profile (a <link linkend="RtpProfile"><type>RtpProfile</type></link> object)</simpara></listitem></varlistentry><varlistentry><term><parameter>index</parameter>&nbsp;:</term><listitem><simpara>	the payload type number</simpara></listitem></varlistentry><varlistentry><term><parameter>pt</parameter>&nbsp;:</term><listitem><simpara>		the payload type description (a <link linkend="PayloadType"><type>PayloadType</type></link> object )</simpara></listitem></varlistentry></variablelist></refsect2><refsect2><title><anchor id="rtp-profile-get-payload">rtp_profile_get_payload()</title><indexterm><primary>rtp_profile_get_payload</primary></indexterm><programlisting>#define rtp_profile_get_payload(profile,index)	((profile)-&gt;payload[(index)])</programlisting><para>Gets the payload description of the payload type <parameter>index</parameter> in the profile <parameter>profile</parameter>.</para><para></para><variablelist role="params"><varlistentry><term><parameter>profile</parameter>&nbsp;:</term><listitem><simpara>	an RTP profile (a <link linkend="RtpProfile"><type>RtpProfile</type></link> object)</simpara></listitem></varlistentry><varlistentry><term><parameter>index</parameter>&nbsp;:</term><listitem><simpara>	the payload type number</simpara></listitem></varlistentry></variablelist></refsect2><refsect2><title><anchor id="rtp-profile-clear-payload">rtp_profile_clear_payload()</title><indexterm><primary>rtp_profile_clear_payload</primary></indexterm><programlisting>#define rtp_profile_clear_payload(profile,index)	(profile)-&gt;payload[(index)]=NULL</programlisting><para>Set payload type number <parameter>index</parameter> unassigned in profile <parameter>profile</parameter>.</para><para></para><variablelist role="params"><varlistentry><term><parameter>profile</parameter>&nbsp;:</term><listitem><simpara>	an RTP profile (a <link linkend="RtpProfile"><type>RtpProfile</type></link> object)</simpara></listitem></varlistentry><varlistentry><term><parameter>index</parameter>&nbsp;:</term><listitem><simpara>	the payload type number</simpara></listitem></varlistentry></variablelist></refsect2></refsect1><refsect1><title>See Also</title><para><link linkend="rtp-session-set-profile"><function>rtp_session_set_profile()</function></link></para></refsect1></refentry>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -