RTCPRRPacket
-----------------------------------------------------------------------头文件:rtcprrpacket.h
----------------------------------------------------------------------继承自:RTCPPacket
类描述了一个RTCP接收方报告数据包,接口如下:
RTCPRRPacket(uint8_t *data, size_t datalen)
-----基于长度为datalen的数据data创建一个RTCPRRPacket数据包对象。因为data指向的数据在类内部被引用(即不复制数据),所以必须确保在该对象存在期间data指针指向的内存是有效合法的。
uint32_t GetSenderSSRC() const
-----返回发送该数据包的(会话)参与者的SSRC。
int GetReceptionReportCount() const
-----返回数据包中的接收报告块的个数。(译注:not sure。原文:Return the number of report blocks present in this packet.)
uint32_t GetSSRC(int index) const
-----返回由index指定的接收报告块的SSRC,index的取值范围从0到GetReceptionReportCount()-1。注意:(函数)并不检查index范围的合法性。
uint8_t GetFractionLost(int index) const
-----返回index指定的接收报告中的丢包率属性。index的取值范围与上面一样,同样不检查index的范围的合法性。
int32_t GetLostPacketCount(int index) const
-----返回由index指出的接受报告中的丢失的数据包的个数。关于index的描述与上面相同。
uint32_t GetExtendedHighestSequenceNumber(int index) const
-----返回由index指出的接收报告中的扩展的最高序列号(??),index同上。
uint32_t GetJitter(int index) const
-----返回index指出的接收报告中的抖动属性,index同上。
uint32_t GetLSR(int index) const
-----返回index指出的接受报告中的LSR属性,index同上。
uint32_t GetDLSR(int index) const
-----返回index指出的接受报告中的DLSR属性,index同上。
RTCPSDESPacket
-----------------------------------------------------------------------头文件:rtcpsdespacket.h
-----------------------------------------------------------------------继承自:RTCPPacket
该类描述了RTCP 的SDES数据包,类中定义了如下的类型:
enum ItemType{ None, CNAME, NAME, EMAIL, PHONE, LOC, TOOL, NOTE, PRIV, Unknown};
这些类型用来确定SDES每一个项的类型,None用来指出遍历所有项的结束,Unknown用来指出确实有一项存在,但是该项不是标准类型。
类的接口如下:
RTCPSDESPacket(uint8_t *data, size_t datalen)
-----基于长度为datalen的数据data创建一个RTCPSDESPacket数据包对象。因为data指向的数据在类内部被引用(即不复制数据),所以必须确保在该对象存在期间data指针指向的内存是有效合法的。
int GetChunkCount() const
-----返回SDES数据包中SDES数据块的个数,每个数据块都有自己的标识符。
bool GotoFirstChunk()
-----开始遍历,如果没有SDES数据块存在,函数返回false,否则返回true并将当前数据块设置为第一个数据块。
bool GotoNextChunk()
-----将当前数据块设置为下一个有效的数据块,如果没有数据块可用了,则返回false,否则返回true。
uint32_t GetChunkSSRC() const
-----返回当前数据块的SSRC标识符。
bool GotoFirstItem()
-----在当前数据块上开始遍历SDES的各项,如果没有SDES项存在,则返回false,否则返回true并将第一项设为当前项。
bool GotoNextItem()
-----如果当前数据块中还存在项(条目?),将当前项设置为下一项,并返回true,否则返回false。
ItemType GetItemType() const
-----返回当前数据块的当前数据项的类型。
size_t GetItemLength() const
-----返回当前数据块的当前数据项的长度。
uint8_t *GetItemData()
-----返回当前数据块的当前数据项的数据。
如果在编译库的时候选择了支持SDES私有项,那么在当前项SDES是私有项时下列函数也可用。
size_t GetPRIVPrifixLength()
-----返回私有项的前缀字符串长度。
uint8_t *GetPRIVPrefixData()
-----返回私有项中前缀字符串的实际数据。
size_t GetPRIVValueLength()
-----返回私有项的值字符串的长度。
uint8_t *GetPRIVValueData()
-----返回私有项中值字符串的实际数据。
RTCPAPPPacket
------------------------------------------------------------------------头文件:rtcpapppacket.h
------------------------------------------------------------------------继承自:RTCPPacket
类RTCPAPPPacket描述了RTCP 的APP包,接口如下:
RTCPAPPPacket(uint8_t *data, size_t datalen)
-----基于长度为datalen的数据data创建一个RTCPAPPPacket数据包对象。因为data指向的数据在类内部被引用(即不复制数据),所以必须确保在该对象存在期间data指针指向的内存是有效合法的。
uint8_t GetSubType() const
-----返回APP数据包的子类型。
uint32_t GetSSRC() const
-----返回发送数据包的源的SSRC。
uint8_t *GetName()
-----返回在APP包中包含的名字,由四个不是以null结尾的字节组成。
uint8_t *GetAPPData()
-----返回指向实际数据的指针。
size_t GetAPPDataLength() const
-----返回实际数据的长度。
RTCPBYEPacket
------------------------------------------------------------------------头文件:rtcpbyepacket.h
------------------------------------------------------------------------继承自:RTCPPacket
类RTCPBYEPacket描述了RTCP 的BYE包,接口如下:
RTCPBYEPacket(uint8_t *data, size_t datalen)
-----基于长度为datalen的数据data创建一个RTCPBYEPacket数据包对象。因为data指向的数据在类内部被引用(即不复制数据),所以必须确保在该对象存在期间data指针指向的内存是有效合法的。
int GetSSRCCount() const
-----返回BYE数据包中存在的SSRC标识符的个数。
uint32_t GetSSRC(int index) const
-----返回由index指出的SSRC,index的范围可以是0到GetSSRCCount()-1,注意index没有范围的有效性检查。
bool HasReasonLength() const
------如果BYE包中包含离开原因则返回true。
size_t GetReasonLent() const
-----返回源离开的原因字符串长度。
uint8_t *GetReasonData()
-----返回实际的原因数据。
RTCPUnknownPacket
------------------------------------------------------------------------头文件:rtcpunknownpacket.h
------------------------------------------------------------------------继承自:RTCPPacket
这个类除了继承的函数外,没有其他的成员函数,注意:因为未知的数据包格式没有什么可检查的,所以IsKnownFormat函数只是单纯的返回一个true。只有构造函数是可用的。
RTCPUnKnownPacket(uint8_t *data, size_t datalen)
-----基于长度为datalen的数据data创建一个RTCPBYEPacket数据包对象。因为data指向的数据在类内部被引用(即不复制数据),所以必须确保在该对象存在期间data指针指向的内存是有效合法的。
【to be continued!】