JRTPLIB  3.11.1
rtpsourcedata.h
Go to the documentation of this file.
1 /*
2 
3  This file is a part of JRTPLIB
4  Copyright (c) 1999-2017 Jori Liesenborgs
5 
6  Contact: jori.liesenborgs@gmail.com
7 
8  This library was developed at the Expertise Centre for Digital Media
9  (http://www.edm.uhasselt.be), a research center of the Hasselt University
10  (http://www.uhasselt.be). The library is based upon work done for
11  my thesis at the School for Knowledge Technology (Belgium/The Netherlands).
12 
13  Permission is hereby granted, free of charge, to any person obtaining a
14  copy of this software and associated documentation files (the "Software"),
15  to deal in the Software without restriction, including without limitation
16  the rights to use, copy, modify, merge, publish, distribute, sublicense,
17  and/or sell copies of the Software, and to permit persons to whom the
18  Software is furnished to do so, subject to the following conditions:
19 
20  The above copyright notice and this permission notice shall be included
21  in all copies or substantial portions of the Software.
22 
23  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
29  IN THE SOFTWARE.
30 
31 */
32 
37 #ifndef RTPSOURCEDATA_H
38 
39 #define RTPSOURCEDATA_H
40 
41 #include "rtpconfig.h"
42 #include "rtptimeutilities.h"
43 #include "rtppacket.h"
44 #include "rtcpsdesinfo.h"
45 #include "rtptypes.h"
46 #include "rtpsources.h"
47 #include "rtpmemoryobject.h"
48 #include <list>
49 
50 namespace jrtplib
51 {
52 
53 class RTPAddress;
54 
55 class JRTPLIB_IMPORTEXPORT RTCPSenderReportInfo
56 {
57 public:
58  RTCPSenderReportInfo():ntptimestamp(0,0),receivetime(0,0) { hasinfo = false; rtptimestamp = 0; packetcount = 0; bytecount = 0; }
59  void Set(const RTPNTPTime &ntptime,uint32_t rtptime,uint32_t pcount,
60  uint32_t bcount,const RTPTime &rcvtime) { ntptimestamp = ntptime; rtptimestamp = rtptime; packetcount = pcount; bytecount = bcount; receivetime = rcvtime; hasinfo = true; }
61 
62  bool HasInfo() const { return hasinfo; }
63  RTPNTPTime GetNTPTimestamp() const { return ntptimestamp; }
64  uint32_t GetRTPTimestamp() const { return rtptimestamp; }
65  uint32_t GetPacketCount() const { return packetcount; }
66  uint32_t GetByteCount() const { return bytecount; }
67  RTPTime GetReceiveTime() const { return receivetime; }
68 private:
69  bool hasinfo;
70  RTPNTPTime ntptimestamp;
71  uint32_t rtptimestamp;
72  uint32_t packetcount;
73  uint32_t bytecount;
74  RTPTime receivetime;
75 };
76 
77 class JRTPLIB_IMPORTEXPORT RTCPReceiverReportInfo
78 {
79 public:
80  RTCPReceiverReportInfo():receivetime(0,0) { hasinfo = false; fractionlost = 0; packetslost = 0; exthighseqnr = 0; jitter = 0; lsr = 0; dlsr = 0; }
81  void Set(uint8_t fraclost,int32_t plost,uint32_t exthigh,
82  uint32_t jit,uint32_t l,uint32_t dl,const RTPTime &rcvtime) { fractionlost = ((double)fraclost)/256.0; packetslost = plost; exthighseqnr = exthigh; jitter = jit; lsr = l; dlsr = dl; receivetime = rcvtime; hasinfo = true; }
83 
84  bool HasInfo() const { return hasinfo; }
85  double GetFractionLost() const { return fractionlost; }
86  int32_t GetPacketsLost() const { return packetslost; }
87  uint32_t GetExtendedHighestSequenceNumber() const { return exthighseqnr; }
88  uint32_t GetJitter() const { return jitter; }
89  uint32_t GetLastSRTimestamp() const { return lsr; }
90  uint32_t GetDelaySinceLastSR() const { return dlsr; }
91  RTPTime GetReceiveTime() const { return receivetime; }
92 private:
93  bool hasinfo;
94  double fractionlost;
95  int32_t packetslost;
96  uint32_t exthighseqnr;
97  uint32_t jitter;
98  uint32_t lsr;
99  uint32_t dlsr;
100  RTPTime receivetime;
101 };
102 
103 class JRTPLIB_IMPORTEXPORT RTPSourceStats
104 {
105 public:
106  RTPSourceStats();
107  void ProcessPacket(RTPPacket *pack,const RTPTime &receivetime,double tsunit,bool ownpacket,bool *accept,bool applyprobation,bool *onprobation);
108 
109  bool HasSentData() const { return sentdata; }
110  uint32_t GetNumPacketsReceived() const { return packetsreceived; }
111  uint32_t GetBaseSequenceNumber() const { return baseseqnr; }
112  uint32_t GetExtendedHighestSequenceNumber() const { return exthighseqnr; }
113  uint32_t GetJitter() const { return jitter; }
114 
115  int32_t GetNumPacketsReceivedInInterval() const { return numnewpackets; }
116  uint32_t GetSavedExtendedSequenceNumber() const { return savedextseqnr; }
117  void StartNewInterval() { numnewpackets = 0; savedextseqnr = exthighseqnr; }
118 
119  void SetLastMessageTime(const RTPTime &t) { lastmsgtime = t; }
120  RTPTime GetLastMessageTime() const { return lastmsgtime; }
121  void SetLastRTPPacketTime(const RTPTime &t) { lastrtptime = t; }
122  RTPTime GetLastRTPPacketTime() const { return lastrtptime; }
123 
124  void SetLastNoteTime(const RTPTime &t) { lastnotetime = t; }
125  RTPTime GetLastNoteTime() const { return lastnotetime; }
126 private:
127  bool sentdata;
128  uint32_t packetsreceived;
129  uint32_t numcycles; // shifted left 16 bits
130  uint32_t baseseqnr;
131  uint32_t exthighseqnr,prevexthighseqnr;
132  uint32_t jitter,prevtimestamp;
133  double djitter;
134  RTPTime prevpacktime;
135  RTPTime lastmsgtime;
136  RTPTime lastrtptime;
137  RTPTime lastnotetime;
138  uint32_t numnewpackets;
139  uint32_t savedextseqnr;
140 #ifdef RTP_SUPPORT_PROBATION
141  uint16_t prevseqnr;
142  int probation;
143 #endif // RTP_SUPPORT_PROBATION
144 };
145 
146 inline RTPSourceStats::RTPSourceStats():prevpacktime(0,0),lastmsgtime(0,0),lastrtptime(0,0),lastnotetime(0,0)
147 {
148  sentdata = false;
149  packetsreceived = 0;
150  baseseqnr = 0;
151  exthighseqnr = 0;
152  prevexthighseqnr = 0;
153  jitter = 0;
154  numcycles = 0;
155  numnewpackets = 0;
156  prevtimestamp = 0;
157  djitter = 0;
158  savedextseqnr = 0;
159 #ifdef RTP_SUPPORT_PROBATION
160  probation = 0;
161  prevseqnr = 0;
162 #endif // RTP_SUPPORT_PROBATION
163 }
164 
166 class JRTPLIB_IMPORTEXPORT RTPSourceData : public RTPMemoryObject
167 {
168 protected:
169  RTPSourceData(uint32_t ssrc, RTPMemoryManager *mgr = 0);
170  virtual ~RTPSourceData();
171 public:
173  RTPPacket *GetNextPacket();
174 
176  void FlushPackets();
177 
179  bool HasData() const { if (!validated) return false; return packetlist.empty()?false:true; }
180 
182  uint32_t GetSSRC() const { return ssrc; }
183 
187  bool IsOwnSSRC() const { return ownssrc; }
188 
190  bool IsCSRC() const { return iscsrc; }
191 
193  bool IsSender() const { return issender; }
194 
199  bool IsValidated() const { return validated; }
200 
202  bool IsActive() const { if (!validated) return false; if (receivedbye) return false; return true; }
203 
207  void SetProcessedInRTCP(bool v) { processedinrtcp = v; }
208 
212  bool IsProcessedInRTCP() const { return processedinrtcp; }
213 
217  bool IsRTPAddressSet() const { return isrtpaddrset; }
218 
222  bool IsRTCPAddressSet() const { return isrtcpaddrset; }
223 
229  const RTPAddress *GetRTPDataAddress() const { return rtpaddr; }
230 
236  const RTPAddress *GetRTCPDataAddress() const { return rtcpaddr; }
237 
239  bool ReceivedBYE() const { return receivedbye; }
240 
245  uint8_t *GetBYEReason(size_t *len) const { *len = byereasonlen; return byereason; }
246 
248  RTPTime GetBYETime() const { return byetime; }
249 
256  void SetTimestampUnit(double tsu) { timestampunit = tsu; }
257 
259  double GetTimestampUnit() const { return timestampunit; }
260 
262  bool SR_HasInfo() const { return SRinf.HasInfo(); }
263 
265  RTPNTPTime SR_GetNTPTimestamp() const { return SRinf.GetNTPTimestamp(); }
266 
268  uint32_t SR_GetRTPTimestamp() const { return SRinf.GetRTPTimestamp(); }
269 
271  uint32_t SR_GetPacketCount() const { return SRinf.GetPacketCount(); }
272 
274  uint32_t SR_GetByteCount() const { return SRinf.GetByteCount(); }
275 
277  RTPTime SR_GetReceiveTime() const { return SRinf.GetReceiveTime(); }
278 
280  bool SR_Prev_HasInfo() const { return SRprevinf.HasInfo(); }
281 
283  RTPNTPTime SR_Prev_GetNTPTimestamp() const { return SRprevinf.GetNTPTimestamp(); }
284 
286  uint32_t SR_Prev_GetRTPTimestamp() const { return SRprevinf.GetRTPTimestamp(); }
287 
289  uint32_t SR_Prev_GetPacketCount() const { return SRprevinf.GetPacketCount(); }
290 
292  uint32_t SR_Prev_GetByteCount() const { return SRprevinf.GetByteCount(); }
293 
295  RTPTime SR_Prev_GetReceiveTime() const { return SRprevinf.GetReceiveTime(); }
296 
298  bool RR_HasInfo() const { return RRinf.HasInfo(); }
299 
301  double RR_GetFractionLost() const { return RRinf.GetFractionLost(); }
302 
304  int32_t RR_GetPacketsLost() const { return RRinf.GetPacketsLost(); }
305 
307  uint32_t RR_GetExtendedHighestSequenceNumber() const { return RRinf.GetExtendedHighestSequenceNumber(); }
308 
310  uint32_t RR_GetJitter() const { return RRinf.GetJitter(); }
311 
313  uint32_t RR_GetLastSRTimestamp() const { return RRinf.GetLastSRTimestamp(); }
314 
316  uint32_t RR_GetDelaySinceLastSR() const { return RRinf.GetDelaySinceLastSR(); }
317 
319  RTPTime RR_GetReceiveTime() const { return RRinf.GetReceiveTime(); }
320 
324  bool RR_Prev_HasInfo() const { return RRprevinf.HasInfo(); }
325 
327  double RR_Prev_GetFractionLost() const { return RRprevinf.GetFractionLost(); }
328 
330  int32_t RR_Prev_GetPacketsLost() const { return RRprevinf.GetPacketsLost(); }
331 
333  uint32_t RR_Prev_GetExtendedHighestSequenceNumber() const { return RRprevinf.GetExtendedHighestSequenceNumber(); }
334 
336  uint32_t RR_Prev_GetJitter() const { return RRprevinf.GetJitter(); }
337 
339  uint32_t RR_Prev_GetLastSRTimestamp() const { return RRprevinf.GetLastSRTimestamp(); }
340 
342  uint32_t RR_Prev_GetDelaySinceLastSR() const { return RRprevinf.GetDelaySinceLastSR(); }
343 
345  RTPTime RR_Prev_GetReceiveTime() const { return RRprevinf.GetReceiveTime(); }
346 
348  bool INF_HasSentData() const { return stats.HasSentData(); }
349 
351  int32_t INF_GetNumPacketsReceived() const { return stats.GetNumPacketsReceived(); }
352 
354  uint32_t INF_GetBaseSequenceNumber() const { return stats.GetBaseSequenceNumber(); }
355 
357  uint32_t INF_GetExtendedHighestSequenceNumber() const { return stats.GetExtendedHighestSequenceNumber(); }
358 
360  uint32_t INF_GetJitter() const { return stats.GetJitter(); }
361 
363  RTPTime INF_GetLastMessageTime() const { return stats.GetLastMessageTime(); }
364 
366  RTPTime INF_GetLastRTPPacketTime() const { return stats.GetLastRTPPacketTime(); }
367 
369  double INF_GetEstimatedTimestampUnit() const;
370 
372  uint32_t INF_GetNumPacketsReceivedInInterval() const { return stats.GetNumPacketsReceivedInInterval(); }
373 
375  uint32_t INF_GetSavedExtendedSequenceNumber() const { return stats.GetSavedExtendedSequenceNumber(); }
376 
380  void INF_StartNewInterval() { stats.StartNewInterval(); }
381 
383  RTPTime INF_GetRoundtripTime() const;
384 
386  RTPTime INF_GetLastSDESNoteTime() const { return stats.GetLastNoteTime(); }
387 
389  uint8_t *SDES_GetCNAME(size_t *len) const { return SDESinf.GetCNAME(len); }
390 
392  uint8_t *SDES_GetName(size_t *len) const { return SDESinf.GetName(len); }
393 
395  uint8_t *SDES_GetEMail(size_t *len) const { return SDESinf.GetEMail(len); }
396 
398  uint8_t *SDES_GetPhone(size_t *len) const { return SDESinf.GetPhone(len); }
399 
401  uint8_t *SDES_GetLocation(size_t *len) const { return SDESinf.GetLocation(len); }
402 
404  uint8_t *SDES_GetTool(size_t *len) const { return SDESinf.GetTool(len); }
405 
407  uint8_t *SDES_GetNote(size_t *len) const { return SDESinf.GetNote(len); }
408 
409 #ifdef RTP_SUPPORT_SDESPRIV
410 
411  void SDES_GotoFirstPrivateValue() { SDESinf.GotoFirstPrivateValue(); }
412 
416  bool SDES_GetNextPrivateValue(uint8_t **prefix,size_t *prefixlen,uint8_t **value,size_t *valuelen) { return SDESinf.GetNextPrivateValue(prefix,prefixlen,value,valuelen); }
417 
422  bool SDES_GetPrivateValue(uint8_t *prefix,size_t prefixlen,uint8_t **value,size_t *valuelen) const { return SDESinf.GetPrivateValue(prefix,prefixlen,value,valuelen); }
423 #endif // RTP_SUPPORT_SDESPRIV
424 
425 #ifdef RTPDEBUG
426  virtual void Dump();
427 #endif // RTPDEBUG
428 protected:
429  std::list<RTPPacket *> packetlist;
430 
431  uint32_t ssrc;
432  bool ownssrc;
433  bool iscsrc;
434  double timestampunit;
435  bool receivedbye;
436  bool validated;
437  bool processedinrtcp;
438  bool issender;
439 
440  RTCPSenderReportInfo SRinf,SRprevinf;
441  RTCPReceiverReportInfo RRinf,RRprevinf;
442  RTPSourceStats stats;
443  RTCPSDESInfo SDESinf;
444 
445  bool isrtpaddrset,isrtcpaddrset;
446  RTPAddress *rtpaddr,*rtcpaddr;
447 
448  RTPTime byetime;
449  uint8_t *byereason;
450  size_t byereasonlen;
451 };
452 
454 {
455  if (!validated)
456  return 0;
457 
458  RTPPacket *p;
459 
460  if (packetlist.empty())
461  return 0;
462  p = *(packetlist.begin());
463  packetlist.pop_front();
464  return p;
465 }
466 
468 {
469  std::list<RTPPacket *>::const_iterator it;
470 
471  for (it = packetlist.begin() ; it != packetlist.end() ; ++it)
472  RTPDelete(*it,GetMemoryManager());
473  packetlist.clear();
474 }
475 
476 } // end namespace
477 
478 #endif // RTPSOURCEDATA_H
479 
double RR_GetFractionLost() const
Returns the fraction lost value from the last report.
Definition: rtpsourcedata.h:301
double GetTimestampUnit() const
Returns the timestamp unit used for this participant.
Definition: rtpsourcedata.h:259
bool IsOwnSSRC() const
Returns true if the participant was added using the RTPSources member function CreateOwnSSRC and retu...
Definition: rtpsourcedata.h:187
void INF_StartNewInterval()
Starts a new interval to count received packets in; this also stores the current extended highest seq...
Definition: rtpsourcedata.h:380
uint8_t * SDES_GetEMail(size_t *len) const
Returns a pointer to the SDES e-mail item of this participant and stores its length in len...
Definition: rtpsourcedata.h:395
uint32_t SR_GetPacketCount() const
Returns the packet count contained in the last sender report.
Definition: rtpsourcedata.h:271
The class RTCPSDESInfo is a container for RTCP SDES information.
Definition: rtcpsdesinfo.h:53
uint32_t SR_GetByteCount() const
Returns the octet count contained in the last sender report.
Definition: rtpsourcedata.h:274
uint8_t * SDES_GetNote(size_t *len) const
Returns a pointer to the SDES note item of this participant and stores its length in len...
Definition: rtpsourcedata.h:407
bool RR_Prev_HasInfo() const
Returns true if this participant sent more than one receiver report with information about the recept...
Definition: rtpsourcedata.h:324
uint32_t RR_GetExtendedHighestSequenceNumber() const
Returns the extended highest sequence number contained in the last report.
Definition: rtpsourcedata.h:307
RTPNTPTime SR_Prev_GetNTPTimestamp() const
Returns the NTP timestamp contained in the second to last sender report.
Definition: rtpsourcedata.h:283
uint32_t GetSSRC() const
Returns the SSRC identifier for this member.
Definition: rtpsourcedata.h:182
uint8_t * SDES_GetTool(size_t *len) const
Returns a pointer to the SDES tool item of this participant and stores its length in len...
Definition: rtpsourcedata.h:404
uint32_t RR_Prev_GetDelaySinceLastSR() const
Returns the DLSR value from the second to last report.
Definition: rtpsourcedata.h:342
bool SDES_GetPrivateValue(uint8_t *prefix, size_t prefixlen, uint8_t **value, size_t *valuelen) const
Looks for the entry which corresponds to the SDES private item prefix prefix with length prefixlen; i...
Definition: rtpsourcedata.h:422
RTPTime RR_Prev_GetReceiveTime() const
Returns the time at which the second to last report was received.
Definition: rtpsourcedata.h:345
RTPTime SR_GetReceiveTime() const
Returns the time at which the last sender report was received.
Definition: rtpsourcedata.h:277
bool HasData() const
Returns true if there are RTP packets which can be extracted.
Definition: rtpsourcedata.h:179
bool SR_HasInfo() const
Returns true if an RTCP sender report has been received from this participant.
Definition: rtpsourcedata.h:262
uint8_t * SDES_GetName(size_t *len) const
Returns a pointer to the SDES name item of this participant and stores its length in len...
Definition: rtpsourcedata.h:392
RTPTime INF_GetLastMessageTime() const
Returns the time at which something was last heard from this member.
Definition: rtpsourcedata.h:363
double RR_Prev_GetFractionLost() const
Returns the fraction lost value from the second to last report.
Definition: rtpsourcedata.h:327
uint32_t RR_GetDelaySinceLastSR() const
Returns the DLSR value from the last report.
Definition: rtpsourcedata.h:316
This is a simple wrapper for the most significant word (MSW) and least significant word (LSW) of an N...
Definition: rtptimeutilities.h:65
bool ReceivedBYE() const
Returns true if we received a BYE message for this participant and false otherwise.
Definition: rtpsourcedata.h:239
uint32_t RR_GetLastSRTimestamp() const
Returns the LSR value from the last report.
Definition: rtpsourcedata.h:313
This class is an abstract class which is used to specify destinations, multicast groups etc...
Definition: rtpaddress.h:50
bool IsProcessedInRTCP() const
This function is used by the RTCPPacketBuilder class and returns whether this participant has been pr...
Definition: rtpsourcedata.h:212
uint32_t INF_GetSavedExtendedSequenceNumber() const
Returns the extended sequence number which was stored by the INF_StartNewInterval call...
Definition: rtpsourcedata.h:375
uint32_t RR_Prev_GetLastSRTimestamp() const
Returns the LSR value from the second to last report.
Definition: rtpsourcedata.h:339
uint32_t RR_Prev_GetJitter() const
Returns the jitter value from the second to last report.
Definition: rtpsourcedata.h:336
uint32_t RR_Prev_GetExtendedHighestSequenceNumber() const
Returns the extended highest sequence number contained in the second to last report.
Definition: rtpsourcedata.h:333
bool IsValidated() const
Returns true if the participant is validated, which is the case if a number of consecutive RTP packet...
Definition: rtpsourcedata.h:199
bool INF_HasSentData() const
Returns true if validated RTP packets have been received from this participant.
Definition: rtpsourcedata.h:348
RTPTime INF_GetLastRTPPacketTime() const
Returns the time at which the last RTP packet was received.
Definition: rtpsourcedata.h:366
Describes an entry in the RTPSources source table.
Definition: rtpsourcedata.h:166
bool IsRTCPAddressSet() const
Returns true if the address from which this participant&#39;s RTCP packets originate has already been set...
Definition: rtpsourcedata.h:222
const RTPAddress * GetRTCPDataAddress() const
Returns the address from which this participant&#39;s RTCP packets originate.
Definition: rtpsourcedata.h:236
uint32_t SR_GetRTPTimestamp() const
Returns the RTP timestamp contained in the last sender report.
Definition: rtpsourcedata.h:268
uint32_t INF_GetBaseSequenceNumber() const
Returns the base sequence number of this participant.
Definition: rtpsourcedata.h:354
void SetTimestampUnit(double tsu)
Sets the value for the timestamp unit to be used in jitter calculations for data received from this p...
Definition: rtpsourcedata.h:256
uint8_t * GetBYEReason(size_t *len) const
Returns the reason for leaving contained in the BYE packet of this participant.
Definition: rtpsourcedata.h:245
void FlushPackets()
Clears the participant&#39;s RTP packet list.
Definition: rtpsourcedata.h:467
RTPPacket * GetNextPacket()
Extracts the first packet of this participants RTP packet queue.
Definition: rtpsourcedata.h:453
bool SDES_GetNextPrivateValue(uint8_t **prefix, size_t *prefixlen, uint8_t **value, size_t *valuelen)
If available, returns true and stores the next SDES private item prefix in prefix and its length in p...
Definition: rtpsourcedata.h:416
RTPTime INF_GetLastSDESNoteTime() const
Returns the time at which the last SDES NOTE item was received.
Definition: rtpsourcedata.h:386
uint32_t SR_Prev_GetByteCount() const
Returns the octet count contained in the second to last sender report.
Definition: rtpsourcedata.h:292
Definition: rtpfaketransmitter.h:64
bool RR_HasInfo() const
Returns true if this participant sent a receiver report with information about the reception of our d...
Definition: rtpsourcedata.h:298
uint32_t SR_Prev_GetPacketCount() const
Returns the packet count contained in the second to last sender report.
Definition: rtpsourcedata.h:289
This class is used to specify wallclock time, delay intervals etc.
Definition: rtptimeutilities.h:84
RTPNTPTime SR_GetNTPTimestamp() const
Returns the NTP timestamp contained in the last sender report.
Definition: rtpsourcedata.h:265
A memory manager.
Definition: rtpmemorymanager.h:150
uint32_t INF_GetNumPacketsReceivedInInterval() const
Returns the number of packets received since a new interval was started with INF_StartNewInterval.
Definition: rtpsourcedata.h:372
int32_t RR_Prev_GetPacketsLost() const
Returns the number of lost packets contained in the second to last report.
Definition: rtpsourcedata.h:330
uint32_t RR_GetJitter() const
Returns the jitter value from the last report.
Definition: rtpsourcedata.h:310
RTPTime GetBYETime() const
Returns the time at which the BYE packet was received.
Definition: rtpsourcedata.h:248
bool SR_Prev_HasInfo() const
Returns true if more than one RTCP sender report has been received.
Definition: rtpsourcedata.h:280
const RTPAddress * GetRTPDataAddress() const
Returns the address from which this participant&#39;s RTP packets originate.
Definition: rtpsourcedata.h:229
Represents an RTP Packet.
Definition: rtppacket.h:56
uint32_t INF_GetExtendedHighestSequenceNumber() const
Returns the extended highest sequence number received from this participant.
Definition: rtpsourcedata.h:357
uint8_t * SDES_GetPhone(size_t *len) const
Returns a pointer to the SDES phone item of this participant and stores its length in len...
Definition: rtpsourcedata.h:398
int32_t INF_GetNumPacketsReceived() const
Returns the total number of received packets from this participant.
Definition: rtpsourcedata.h:351
uint32_t INF_GetJitter() const
Returns the current jitter value for this participant.
Definition: rtpsourcedata.h:360
void SetProcessedInRTCP(bool v)
This function is used by the RTCPPacketBuilder class to mark whether this participant&#39;s information h...
Definition: rtpsourcedata.h:207
RTPTime SR_Prev_GetReceiveTime() const
Returns the time at which the second to last sender report was received.
Definition: rtpsourcedata.h:295
bool IsSender() const
Returns true if this member is marked as a sender and false if not.
Definition: rtpsourcedata.h:193
uint8_t * SDES_GetLocation(size_t *len) const
Returns a pointer to the SDES location item of this participant and stores its length in len...
Definition: rtpsourcedata.h:401
RTPTime RR_GetReceiveTime() const
Returns the time at which the last report was received.
Definition: rtpsourcedata.h:319
bool IsRTPAddressSet() const
Returns true if the address from which this participant&#39;s RTP packets originate has already been set...
Definition: rtpsourcedata.h:217
uint8_t * SDES_GetCNAME(size_t *len) const
Returns a pointer to the SDES CNAME item of this participant and stores its length in len...
Definition: rtpsourcedata.h:389
bool IsCSRC() const
Returns true if the source identifier is actually a CSRC from an RTP packet.
Definition: rtpsourcedata.h:190
uint32_t SR_Prev_GetRTPTimestamp() const
Returns the RTP timestamp contained in the second to last sender report.
Definition: rtpsourcedata.h:286
void SDES_GotoFirstPrivateValue()
Starts the iteration over the stored SDES private item prefixes and their associated values...
Definition: rtpsourcedata.h:411
bool IsActive() const
Returns true if the source was validated and had not yet sent a BYE packet.
Definition: rtpsourcedata.h:202
int32_t RR_GetPacketsLost() const
Returns the number of lost packets contained in the last report.
Definition: rtpsourcedata.h:304