3.2.13 RTCPCompoundPacketBuilder
-------------------------------------------------------------------头文件:rtpcompoundpacketbuilder.h
-------------------------------------------------------------------继承自:RTCPCompoundPacket
类RTCPCompoundPacketBuilder可用来构造一个RTCP复合数据包,一旦成功构建就可以继承RTCPCompoundPacket类的成员函数来获取复合数据包的信息。下列函数如果超出了最大允许(包)的大小将返回ERR_RTP_RTCPCOMPPACKBUILDER_NOTEN-
OUGHBYTESLEFT。
int InitBuild(size_t maxpacketsize)
-----开始构建一个最大大小为maxpacksize的RTCP复合数据包,将分配新的内存来存储数据包。
int InitBuild(void *externalbuffer, size_t buffersize)
-----开始构建数据包,数据将被存储在外部由externalbuffer指定的最大存储量为buffersize个字节的地方。
int StartSenderReport(uint32_t senderssrc, const RTPNTPTime, &ntptimestamp, uint32_t rtptimestamp, uint32_t packcount, uint32_t octetcount)
-----告知数据包构建器需要以一个包含有函数参数指定的发送者信息的发送者报告为开头构建数据包。一旦发送者报告开始了,可以使用函数AddReportBlock来加入发送数据块。
int StartReceiverReport(uint32_t senderssrc)
-----告知数据包构建器数据包应该以一个包含由senderssrc指定的发送者SSRC的接受者报告开头。一旦发送者报告开始了,可以使用函数AddReportBlock来加入发送数据块。
int AddReportBlock(uit32_t ssrc, uint8_t fractionlost, int32_t packetslost, uint32_t exthighestseq, uint32_t jitter, uint32_t lsr, uint32_t dlsr)
-----加入由函数参数指定的报告块信息,如果加入的报告块个数大于31个,则构建器将自动使用新的RTCP接受者报告数据包。
int AddSDESSource(uint32_t ssrc)
-----为参与者ssrc开始构建SDES数据块(译注:Starts an SDES chunk for participant ssrc)。
int AddSDESNormalItem(RTCPSDESPacket::ItemType t, const void *itemdata, uint8_t itemlength)
-----将一个类型为t的常规(非私有)SDES项加入到SDES数据块中。项值是长度为itemlength的itemdata数据。
int AddBYEPacket(uint32_t *ssrc, uint8_t numssrcs, const void *reasondata, uint8_t reasonlength)
-----在复合数据包中加入一个BYE包。包中将包含由ssrcs指定的numssrcs源标识符,并且由长度为reasonlength的reasondata字符串指出离开原因。(译注:It will contain numssrcs source identifiers specified in ssrcs)
int AddAPPPacket(uint8_t subtype, uint32_t ssrc, const uint8_t name[4], const void *appdata, size_t appdatalen)
-----在复合数据包中加入由参数指定的APP数据包,注意:appdatalen必须是4的倍数。
int EndBuild()
-----结束构建复合数据包。如果成功RTCPCompoundPacket的成员函数就可以用来获取RTCP数据包的数据。
如果编译时选择了SDES私有项支持,则下面的函数也是可用的。
int AddSDESPrivateItem(const void *prefixdata, uint8_t prefixlength, const void *valuedata, uint8_t valuelength)
-----在当前SDES数据块中加入由函数参数描述的SDES PRIV项。
【to be continued!】
身体不舒服就译了这么多,哎!吃坏了东西,吐的胆汁都出来了,好苦啊,差点挂了~~~