JRTPLIB 3.5.2手册中文版---part12

 

3.2.16 RTPPacketBuilder

-------------------------------------------------------------------------头文件:rtppacketbuilder.h

       该类可以用来构建RTP数据包,比RTPPacket类高级一点:可以产生SSRC标识符,跟踪时间戳,序列号等。接口如下:

int Init(size_t maxpacksize)

-----初始化构建器使得允许的包大小小于maxpack。

void Destroy()

-----清理构建器。

uint32_t GetPacketCount()

-----返回与当前SSRC标识符一块创建的包的数量。

uint32_t GetPayloadOctetCount()

-----返回由该SSRC标识符产生的负载字节数。

int SetMaximumPacketSize(size_t maxpacksize)

-----将最大允许包大小设置为maxpacksize。

int AddCSRC(uint32_t csrc)

-----在RTP包要保存的CSRC链表中加入一个SSRC。

int DeleteCSRC(uint32_t csrc)

-----从要保存入RTP包的CSRC表中删除一个SSRC。

void ClearCSRCList()

-----清除CSRC链表。

int BuildPacket(const void *data, size_t len)

-----构建一个负载为data长度为len的数据包,负载类型,标识,时间戳增量等使用后面的SetDefault函数设置的值。

int BuildPacket(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc)

-----构建一个负载为data长度为len的数据包,负载类型为pt,标识位为mark,包构建成功之后时间戳增量为temstamp。

int BuildPacketEx(const void *data, size_t len, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)

-----构建一个负载为data长度为len的数据包,负载类型,标识,时间戳增量等使用后面的SetDefault函数设置的值。该数据包还将包含一个标识符为hdrextID数据为hdrextdata的RTP扩展头,扩展数据头的长度由一个32位的字numhdrextwords给出。

int BuildPacketEx(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)

-----构建一个负载为data长度为len的数据包,负载类型为pt,标识位为mark,包构建成功之后时间戳增量为temstamp。该数据包还将包含一个标识符为hdrextID数据为hdrextdata的RTP扩展头,扩展数据头的长度由一个32位的字numhdrextwords给出。

uint8_t *GetPacket()

-----返回指向上次构建的RTP数据包数据的指针。

size_t GetPacketLength()

-----返回上次构建的RTP数据包的长度。

int SetDefaultPayloadType(uint8_t pt)

-----设置默认负载类型为pt。

int SetDefaultMark(bool m)

-----设置默认标志位为m。

int SetDefaultTimestampIncrement(uint32_t timestampinc)

-----设置默认时间戳增量为timestampinc。

int IncrementTimestamp(uint32_t inc)

-----函数以给定的inc来增加时间戳。该函数有时候是有用的,例如:当数据包只包含静默而不发送时,该函数应该被调用以按照合适的量来增加时间戳,这样才可以使得其他主机可以在正确的时间播放下一个数据包。

int IncrementTimestampDefault()

-----函数使用由SetDefaultTimestampIncrement指定的量来增加时间戳。该函数是有用的,例如:当数据包只包含静默而不发送时,该函数应该被调用以按照合适的量来增加时间戳,这样才可以使得其他主机可以在正确的时间播放下一个数据包。

uint32_t CreateNewSSRC()

-----在产生的数据包中创建一个新的SSRC,这将产生一个新的时间戳以及序列号增量。

uint32_t CreateNewSSRC(RTPSources & sources)

-----产生的数据包中创建一个新的SSRC,这将产生一个新的时间戳以及序列号增量。源表sources用来确保选择的SSRC不会被其他的参与者使用。

uint32_t GetSSRC()

-----返回当前的SSRC标识符。

uint32_t GetTimestamp()

-----返回当前的RTP时间戳。

uint16_t GetSequenceNumber()

-----返回当前的序列号。

RTPTime GetPacketTime()

-----返回数据包的生成时间。这不必是上一个RTP包生成的时间,如果时间戳增量为0,则时间将不会更新。

uint32_t GetPacketTimestamp()

-----返回对应于上一个函数返回的时间的RTP时间戳。

 

3.2.17 RTCPPacketBuilder

-----------------------------------------------------------------------头文件:rtcppacketbuilder.h

       类RTCPPacketBuilder可以用来构建RTCP复合数据包。该函数比类RTCPCompoundPacketBuilder高级一点:它使用RTPPacketBuilder对象和RTPSources对象的信息来自动产生下一个需要发送的复合数据包,而且类还提供函数用来决定是SDES项而不是CNAME项应该被发送。类的接口如下:

RTCPPacketBuilder(RTPSources &sources,RTPPacketBuilder &rtppackbuilder)

-----创建一个RTCPPacketBuilder对象,使用源表sources和RTP数据包构建器rtppacketbuiler决定的下一个RTCP复合数据包中包含的信息。

int Init(size_t maxpacksize, double timestampunit, const void *cname, size_t cnamelen)

-----使用最大允许包大小maxpacksize,时间戳单位timestampunit以及由长度为cnamelen的cname给出的SDES CNAME项来初始化构建器。时间戳单位定义为:一段时间内采样数除以该段时间长度,对于8000Hz的音频来说就是1.0/8000.0。

void Destroy()

-----清除构建器。

int SetTimestampUnit(double tsunit)

-----设置时间戳单位为tsunit,时间戳单位定义为:一段时间内采样数除以该段时间长度,对于8000Hz的音频来说就是1.0/8000.0。

int SetMaximumPacketSize(size_t maxpacksize)

-----设置最大允许的RTCP复合数据包大小为maxpacksize。

int SetPreTransmissionDelay(const RTPTime &delay)

-----函数允许你通知RTCP数据包构建器第一个采样包到发送包之间的延迟时间,当用于交互式多媒体的同步时,将会考虑进延迟来计算RTP时间戳和时钟时间之间的关系。

int BuildNextPacket(RTCPCompoundPacket **pack)

-----构建下一个保存在pack中的要发送的RTCP复合数据包。

int BuildBYEPacket(RTCPCompoundPacket **pack, const void *reason, size_t reasonlength, bool useSRifpossible = true)

-----构建一个由长度为reasonlength的reason给出离开原因的BYE数据包。如果useSRifpossible设为true,如果允许则RTCP复合数据包将以发送者报告开始,否则将以接受者报告开始。

void SetNameInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES name项。

void SetEMailInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES e-mail项。

void SetLocationInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES location项。

void SetPhoneInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES phone项。

void SetToolInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES tool项。

void SetNoteInterval(int count)

-----当源表中所有的源都已处理完之后,类会检查是否需要发送其他的SDES项,如果count为0或者负,则不会发生什么,如果为正,则在源表中的源被处理完count次之后将在后面加入一条SDES note项。

int SetLocalName(const void *s, size t len)

-----将本地参与者的SDES name项设置为长度为len,值为value。

int SetLocalEMail(const void *s, size t len)

-----将本地参与者的SDES E-mai项设置为长度为len,值为value。

int SetLocalLocation(const void *s, size t len)

-----将本地参与者的SDES location项设置为长度为len,值为value。

int SetLocalPhone(const void *s, size t len)

-----将本地参与者的SDES phone项设置为长度为len,值为value。

int SetLocalTool(const void *s, size t len)

-----将本地参与者的SDES tool项设置为长度为len,值为value。

int SetLocalNote(const void *s, size t len)

-----将本地参与者的SDES note项设置为长度为len,值为value。

【to be continued!】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值