3.2.20 RTPSessionParams
-------------------------------------------------------------------------头文件:rtpsessionparams.h
描述了要被一个RTPSession对象使用的参数。注意!自己的时间戳单位必须设为一个有效的数值,否则会话将不会创建。类的接口如下:
int SetUsePollThread(bool usethread)
-----如果usethread设为了true则会话将使用一个线程池自动的处理收到的数据以及在需要的时候发送RTCP数据包。
bool IsUsingPollThread() const
-----返回会话是否使用了线程池。
void SetMaximumPacketSize(size_t max)
-----设置会话允许的最大包大小。
size_t GetMaximumPacketSize() const
-----返回最大允许的包大小。
void SetAcceptOwnPackets(bool accept)
-----如果参数为true则会话会接受自己的数据包并且放入对应的源表中。
bool AcceptOwnPackets() const
-----如果会话可以接受自己的数据包,则返回true。
void SetReceiveMode(RTPTransmitter::ReceiveMode recvmode)
-----设置会话将使用的接收模式。
RTPTransmitter::ReceiveMode GetReceiveMode() const
-----返回当前使用的接收模式。
void SetOwnTimestampUnit(double tsunit)
-----为我们自己的数据设置时间戳单位。时间戳单位定义为一段时间内的采样数除以这段时间(以秒为单位)。例如:对于80000Hz的音频数据,时间戳单位就是1.0/8000.0.因为这个值初始设置为一个非法的值,所以使用者必须设置为一个允许的值才可以创建一个会话。
double GetOwnTimestampUnit() const
-----返回当前使用的时间戳单位。
void SetResolveLocalHostname(bool v)
-----如果v设置为true,则会话将请求传输器在基于它的本地IP地址列表中的IP地址寻找一个主机名。如果设置为false,将调用gethostname或者类似的函数来找出本地主机名。注意:方法一(即设为true)将会花费一些时间。
bool GetResolveLocalHostname() const
-----返回本地主机名是否应该由传输器的本地IP地址列表决定。
void SetProbationType(RTPSources::ProbationType probtype)
-----如果使能了试用支持,则该函数将设置使用的试用类型。
RTPSources::ProbationType GetProbationType() const
-----返回使用的试用类型。
void SetSessionBandwidth(double sessbw)
-----设置会话带宽(单位为字节/秒)。
double GetSessionBandwidth() const
-----返回以字节/秒为单位的会话带宽。
void SetControlTrafficFraction(double frac)
-----设置控制传输将使用的会话带宽百分比。
double GetControlTrafficFraction() const
-----返回控制传输使用的会话带宽的百分比。
void SetSenderControlBandwidthFraction(double frac)
-----设置发送器将使用的最小控制传输百分比。
double GetSenderControlBandwidthFraction() const
-----返回发送器使用的最小控制传输百分比。
void SetMinimumRTCPTransmissionInterval(const RTPTime &t)
-----设置发送RTCP数据包的最小时间间隔。
RTPTime GetMinimumRTCPTransmissionInterval() const
-----返回发送RTCP数据包的最小时间间隔。
void SetUseHalfRTCPIntervalAtStartup(bool usehalf)
-----如果usehalf设置为true,则会话将在发送第一个RTCP数据包之前只等待半个计算的RTCP间隔。
bool GetUseHalfRTCPIntervalAtStartup() const
-----返回会话是否将在发送第一个RTCP数据包之前只等待半个计算的RTCP间隔。
void SetRequestImmediateBYE(bool v)
-----如果v为true,会话将在允许的时候立即发送一个BYE包。
bool GetRequestImmediateBYE() const
-----返回是否会话将在允许的时候立即发送一个BYE包。
void SetSenderReportForBYE(bool v)
-----当发送一个BYE包时,这指出了它是否是一个以发送者报告或接收者报告开头的RTCP复合数据包的一部分。当然发送者报告仅仅在允许的时候才会使用。
bool GetSenderReportForBYE() const
-----如果在一个以发送者报告开头的RTCP复合数据包中发送一个BYE包则返回true,如果使用了接收者报告,则函数将返回false。
void SetSenderTimeoutMultiplier(double m)
-----设置发送者超时将使用的乘数【译注:Set the multiplier to be used when timing out senders.】
double GetSenderTimeoutMultiplier() const
-----返回发送者超时将使用的乘数。
void SetSourceTimeoutMultiplier(double m)
-----设置成员超时将使用的乘数。
double GetSourceTimeoutMultiplier() const
-----返回成员超时将使用的乘数。
void SetBYETimeoutMultiplier(double m)
-----设置成员发送完一个BYE包后超时将使用的乘数。
double GetBYETimeoutMultiplier() const
-----返回成员发送完一个BYE包后超时将使用的乘数。
void SetCollisionTimeoutMultiplier(double m)
-----设置冲突表中的项的超时乘数。
double GetCollisionTimeoutMultiplier() const
-----返回冲突表中的项的超时乘数。
void SetNoteTimeoutMultiplier(double m)
-----设置SDES NOTE信息的超时乘数。
double GetNoteTimeoutMultiplier() const
-----返回SDES NOTE信息的超时乘数。
参数的默认值如下:
。使用线程池:yes
。最大允许包大小:1400字节
。接受自己的数据包:no
。接收模式:接受所有的数据包
。解析本地主机名:no
。试用类型:ProbationStore
。会话带宽:10000字节每秒
。控制传输百分比:5%。
。发送者占的控制传输百分比:25%
。最小RTCP时间间隔:5秒
。在开始时使用半个最小时间间隔:yes
。允许时立即发送BYE包:yes
。为BYE包使用发送者报告:yes
。发送者超时乘数:2
。成员超时乘数:5
。发送BYE包后的超时乘数:1
。冲突表中的项的超时乘数:10
。SDES NOTE项的超时乘数:25
【to be continued!】