RTPSourceData *GetCurrentSourceInfo()
-----返回当前选定的参与者的RTPSourceData对象。
RTPSourceData *GetSourceInfo(uint32_t ssrc)
-----返回标识符为ssrc的参与者的RTPSourceData对象,如果不存在该项则返回NULL。
RTPPacket *GetNextPacket()
-----从当前参与者的接收包队列中提取下一个包。
int EndDataAccess()
-----见BeginDataAccess。
int SetReceiveMode(RTPTransmitter::ReceiveMode m)
将接收模式设为m,m的取值可以如下:
– RTPTransmitter::AcceptAll
-----所有的到达数据一律接收,无论来自哪里。
– RTPTransmitter::AcceptSome
-----仅仅接收来自特定源的数据。
– RTPTransmitter::IgnoreSome
-----除了指定数据源集的外,其余全部接收。
int AddToIgnoreList(const RTPAddress &addr)
-----将地址addr加入忽略地址列表。
int DeleteFromIgnoreList(const RTPAddress &addr)
-----从忽略地址列表中删除addr。
void ClearIgnoreList()
-----清空忽略地址列表。
int AddToAcceptList(const RTPAddress &addr)
-----将地址addr加入接收地址列表。
int DeleteFromAcceptList(const RTPAddress &addr)
-----将addr从接收地址列表中删除。
void ClearAcceptList()
-----清空接收地址列表。
int SetMaximumPacketSize(size t s)
-----将最大允许包大小设置为s。
int SetSessionBandwidth(double bw)
-----将会话带宽设置为bw,单位为字节/秒。
int SetTimestampUnit(double u)
-----将时间戳单位设置为u。时间戳单位的定义。。。。【略去】。
void SetNameInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES name项将在源表中的源处理完count次之后加入。
void SetEMailInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES e-mail项将在源表中的源处理完count次之后加入。
void SetLocationInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES location项将在源表中的源处理完count次之后加入。
void SetPhoneInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES phone项将在源表中的源处理完count次之后加入。
void SetToolInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES tool项将在源表中的源处理完count次之后加入。
void SetNoteInterval(int count)
-----源表中所有可能的源处理完之后,RTCP包构建器将检查是否有其他的(非CNAME)SDES项需要发送。如果count为0或者小于0,则无动作,如果为正,一个SDES note项将在源表中的源处理完count次之后加入。
int SetLocalName(const void *s, size_t len)
-----将本地参与者的SDES name项设置为长度为len的s值。
int SetLocalEMail(const void *s, size_t len)
-----将本地参与者的SDES e-mail项设置为长度为len的s值。
int SetLocalLocation(const void *s, size_t len)
-----将本地参与者的SDES location项设置为长度为len的s值。
int SetLocalPhone(const void *s, size_t len)
-----将本地参与者的SDES phone项设置为长度为len的s值。
int SetLocalTool(const void *s, size_t len)
-----将本地参与者的SDES tool项设置为长度为len的s值。
int SetLocalNote(const void *s, size_t len)
-----将本地参与者的SDES note项设置为长度为len的s值。
如果你在构造函数中指出要使用自定义的传输组件,则你需要重载下面的函数:
RTPTransmitter *NewUserDefinedTransmitter()
该函数返回的RTPTransmitter对象将用来发送和接收RTP和RTCP数据包。注意:当会话销毁时,RTPTransmitter对象也将被delete调用销毁。
通过从RTPSession类继承自己的类,并且重载下面的函数,可用来检测特定的事件。
void OnRTPPacket(RTPPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress)
-----当要处理一个到达的RTP数据包时,将会调用该函数。
void OnRTCPCompoundPacket(RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress)
-----当要处理一个到达的RTCP数据包时,将会调用该函数。
void OnSSRCCollision(RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp)
-----将在检测到一个SSRC冲突时调用。srcdat对象是表中的当前值,senderaddress是与地址发生冲突的地址,【译注:不会翻译了⊙﹏⊙b汗。原文:the address senderaddress is the one that collided with one of the addresses and isrtp indicates against which address of srcdat the check failed.】
void OnCNAMECollision(RTPSourceData *srcdat, const RTPAddress *senderaddress,
const uint8_t *cname, size_t cnamelength)
-----当接收到一个与当前源srcdat不同的CNAME时被调用。
void OnNewSource(RTPSourceData *srcdat)
-----当一个新的srcdat项加入到源表中时被调用。
void OnRemoveSource(RTPSourceData *srcdat)
-----当srcdat项要从源表中清除时被调用。
void OnTimeout(RTPSourceData *srcdat)
-----当参与者srcdat超时时被调用。
void OnBYETimeout(RTPSourceData *srcdat)
-----当参与者srcdat已经发送了一个BYE包之后调用。
void OnBYEPacket(RTPSourceData *srcdat)
-----当源srcdat的一个BYE包已经处理之后调用。
void OnAPPPacket(RTCPAPPPacket *apppacket, const RTPTime &receivetime, const RTPAddress *senderaddress)
-----当在receivetime接收到一个来自senderaddress地址的RTCP APP包apppacket时调用。
void OnUnknownPacketType(RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress)
-----当检测到一个未知的RTCP包类型时调用。
void OnUnknownPacketFormat(RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress)
-----当检测到一个已知包类型的未知的包格式时调用。
void OnNoteTimeout(RTPSourceData *srcdat)
-----当srcdat的SDES NOTE项超时时调用。
void OnSendRTCPCompoundPacket(RTCPCompoundPacket *pack)
-----当一个RTCP复合数据包发送完时调用,检查即将发送的RTCP数据时有用。
void OnPollThreadError(int errcode)
-----当在线程池中检测到errcode时调用。
void OnPollThreadStep()
-----每次线程池循环时调用,这发生在每次检测到有数据到达或者要发送RTCP复合数据包时。
4、联系方式
如果有关于该库的问题,评论,需求或者认为你发现了bug,请与我联系:
库的主页为:
http://research.edm.uhasselt.be/jori/jrtplib/jrtplib.html
其中也有一个关于库的e-mail列表,要订阅列表,以subscribe jrtplib为信息内容(不是主题)发送到majordomo@edm.uhasselt.be 你将收到进一步的介绍。
【the end!】
【终于翻完了,头一次翻译这么长,而且对RTP也不熟,按理说应该没资格翻译的,但是觉得这个JrtpLib挺好,在课题中用到了,帮了自己不少忙,心血来潮就把它译出来了,虽然可能没有多少用,但是还是蛮有成就感的!O(∩_∩)O~】