37 #ifndef RTCPRRPACKET_H
39 #define RTCPRRPACKET_H
41 #include "rtpconfig.h"
44 #if ! (defined(WIN32) || defined(_WIN32_WCE))
45 #include <netinet/in.h>
72 uint32_t
GetSSRC(
int index)
const;
102 uint32_t
GetLSR(
int index)
const;
108 uint32_t
GetDLSR(
int index)
const;
115 RTCPReceiverReport *GotoReport(
int index)
const;
123 uint32_t *ssrcptr = (uint32_t *)(data+
sizeof(RTCPCommonHeader));
124 return ntohl(*ssrcptr);
130 RTCPCommonHeader *hdr = (RTCPCommonHeader *)data;
131 return ((
int)hdr->count);
134 inline RTCPReceiverReport *RTCPRRPacket::GotoReport(
int index)
const
136 RTCPReceiverReport *r = (RTCPReceiverReport *)(data+
sizeof(RTCPCommonHeader)+
sizeof(uint32_t)+index*
sizeof(RTCPReceiverReport));
144 RTCPReceiverReport *r = GotoReport(index);
145 return ntohl(r->ssrc);
152 RTCPReceiverReport *r = GotoReport(index);
153 return r->fractionlost;
160 RTCPReceiverReport *r = GotoReport(index);
161 uint32_t count = ((uint32_t)r->packetslost[2])|(((uint32_t)r->packetslost[1])<<8)|(((uint32_t)r->packetslost[0])<<16);
162 if ((count&0x00800000) != 0)
164 int32_t *count2 = (int32_t *)(&count);
172 RTCPReceiverReport *r = GotoReport(index);
173 return ntohl(r->exthighseqnr);
180 RTCPReceiverReport *r = GotoReport(index);
181 return ntohl(r->jitter);
188 RTCPReceiverReport *r = GotoReport(index);
189 return ntohl(r->lsr);
196 RTCPReceiverReport *r = GotoReport(index);
197 return ntohl(r->dlsr);
200 #endif // RTCPRRPACKET_H