44 sources(s), rtppacketbuilder(pb), prevbuildtime(0, 0), transmissiondelay(0, 0)
141 uint32_t rtptimestamp = rtppacktimestamp + tsdiff;
144 if ((status = rtcpcomppack->
StartSenderReport(ssrc, ntptimestamp, rtptimestamp, packcount, octetcount)) < 0)
164 std::size_t owncnamelen;
186 bool full, atendoflist;
194 if (full && added == 0)
229 if ((status =
FillInSDES(rtcpcomppack, &full, &processedall, &itemcount)) < 0)
239 if (!full && skipped > 0)
247 if ((status =
FillInReportBlocks(rtcpcomppack, curtime, skipped, &full, &added, &skipped, &atendoflist)) < 0)
262 if ((status =
FillInSDES(rtcpcomppack, &full, &processedall, &itemcount)) < 0)
297 if ((status = rtcpcomppack->
EndBuild()) < 0)
303 *pack = rtcpcomppack;
325 int skippedcount = 0;
335 bool shouldprocess =
false;
345 shouldprocess =
true;
354 shouldprocess =
true;
372 uint32_t expected = curseq - prevseq;
379 double lost = (double) (expected - num);
380 double frac = lost / ((double) expected);
381 fraclost = (
uint8_t) (frac * 256.0);
404 lsr = ((m << 16) | l);
413 status = rtcpcomppack->
AddReportBlock(rr_ssrc, fraclost, *packlost, curseq, jitter, lsr, dlsr);
427 if (addedcount >= maxcount)
452 *skipped = skippedcount;
457 bool shouldprocess =
false;
469 shouldprocess =
true;
478 shouldprocess =
true;
487 shouldprocess =
false;
496 }
while (!atend && !shouldprocess);
499 *atendoflist = atend;
510 *processedall =
false;
618 *processedall =
true;
635 if (reasonlength > 255)
673 uint32_t rtptimestamp = rtppacktimestamp + tsdiff;
676 if ((status = rtcpcomppack->
StartSenderReport(ssrc, ntptimestamp, rtptimestamp, packcount, octetcount)) < 0)
696 std::size_t owncnamelen;
719 if ((status = rtcpcomppack->
AddBYEPacket(ssrcs, 1, (
const uint8_t *) reason, reasonlength)) < 0)
727 if ((status = rtcpcomppack->
EndBuild()) < 0)
733 *pack = rtcpcomppack;
uint32_t INF_GetExtendedHighestSequenceNumber() const
#define ERR_RTP_RTCPCOMPPACKBUILDER_NOTENOUGHBYTESLEFT
uint8_t * GetTool(std::size_t *len) const
RTPSourceData * GetOwnSourceInfo()
RTPTimeInitializerObject timeinit
RTPTime GetPacketTime() const
void SetProcessedName(bool v)
int BuildBYEPacket(RTCPCompoundPacket **pack, const void *reason, std::size_t reasonlength, bool useSRifpossible=true)
bool ProcessedLocation() const
bool ProcessedTool() const
RTCPSDESInfoInternal ownsdesinfo
#define ERR_RTP_RTCPPACKETBUILDER_ILLEGALTIMESTAMPUNIT
RTPTime SR_GetReceiveTime() const
int GetTotalCount() const
uint8_t * GetCNAME(std::size_t *len) const
#define ERR_RTP_RTCPPACKETBUILDER_ALREADYINIT
int32_t INF_GetNumPacketsReceived() const
uint8_t * GetNote(std::size_t *len) const
uint32_t GetPayloadOctetCount()
int InitBuild(std::size_t maxpacketsize)
uint32_t GetPacketCount()
void SetProcessedTool(bool v)
RTPSourceData * GetCurrentSourceInfo()
uint32_t INF_GetSavedExtendedSequenceNumber() const
bool ProcessedPhone() const
std::size_t maxpacketsize
uint8_t * GetLocation(std::size_t *len) const
int BuildNextPacket(RTCPCompoundPacket **pack)
int AddSDESSource(uint32_t ssrc)
bool ProcessedEMail() const
int FillInSDES(RTCPCompoundPacketBuilder *pack, bool *full, bool *processedall, int *added)
RTPNTPTime SR_GetNTPTimestamp() const
uint32_t INF_GetBaseSequenceNumber() const
#define RTP_MINPACKETSIZE
int SetCNAME(const uint8_t *s, std::size_t l)
void SetProcessedEMail(bool v)
bool IsProcessedInRTCP() const
uint8_t * GetName(std::size_t *len) const
void ClearAllSourceFlags()
void SetProcessedPhone(bool v)
uint8_t * GetEMail(std::size_t *len) const
#define ERR_RTP_RTCPPACKETBUILDER_ILLEGALMAXPACKSIZE
uint32_t GetPacketTimestamp() const
int AddReportBlock(uint32_t ssrc, uint8_t fractionlost, int32_t packetslost, uint32_t exthighestseq, uint32_t jitter, uint32_t lsr, uint32_t dlsr)
RTPTime transmissiondelay
uint8_t * GetPhone(std::size_t *len) const
void SetProcessedNote(bool v)
uint32_t INF_GetNumPacketsReceivedInInterval() const
#define ERR_RTP_RTCPPACKETBUILDER_PACKETFILLEDTOOSOON
RTPNTPTime GetNTPTime() const
int AddBYEPacket(uint32_t *ssrcs, uint8_t numssrcs, const void *reasondata, uint8_t reasonlength)
int StartReceiverReport(uint32_t senderssrc)
static RTPTime CurrentTime()
int FillInReportBlocks(RTCPCompoundPacketBuilder *pack, const RTPTime &curtime, int maxcount, bool *full, int *added, int *skipped, bool *atendoflist)
void INF_StartNewInterval()
int Init(std::size_t maxpacksize, double timestampunit, const void *cname, std::size_t cnamelen)
#define ERR_RTP_RTCPPACKETBUILDER_NOTINIT
void SetProcessedLocation(bool v)
RTCPPacketBuilder(RTPSources &sources, RTPPacketBuilder &rtppackbuilder)
RTPPacketBuilder & rtppacketbuilder
bool ProcessedNote() const
uint32_t INF_GetJitter() const
bool ProcessedName() const
void SetProcessedInRTCP(bool v)
int StartSenderReport(uint32_t senderssrc, const RTPNTPTime &ntptimestamp, uint32_t rtptimestamp, uint32_t packetcount, uint32_t octetcount)
RTPTime INF_GetLastRTPPacketTime() const
bool INF_HasSentData() const
int AddSDESNormalItem(RTCPSDESPacket::ItemType t, const void *itemdata, uint8_t itemlength)