37 #ifndef RTCPPACKETBUILDER_H
39 #define RTCPPACKETBUILDER_H
41 #include "rtpconfig.h"
77 int Init(
size_t maxpacksize,
double timestampunit,
const void *cname,
size_t cnamelen);
87 int SetTimestampUnit(
double tsunit) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
if (tsunit < 0)
return ERR_RTP_RTCPPACKETBUILDER_ILLEGALTIMESTAMPUNIT; timestampunit = tsunit;
return 0; }
90 int SetMaximumPacketSize(
size_t maxpacksize) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
if (maxpacksize < RTP_MINPACKETSIZE)
return ERR_RTP_RTCPPACKETBUILDER_ILLEGALMAXPACKSIZE; maxpacketsize = maxpacksize;
return 0; }
159 int SetLocalName(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetName((
const uint8_t *)s,len); }
162 int SetLocalEMail(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetEMail((
const uint8_t *)s,len); }
165 int SetLocalLocation(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetLocation((
const uint8_t *)s,len); }
168 int SetLocalPhone(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetPhone((
const uint8_t *)s,len); }
171 int SetLocalTool(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetTool((
const uint8_t *)s,len); }
174 int SetLocalNote(
const void *s,
size_t len) {
if (!init)
return ERR_RTP_RTCPPACKETBUILDER_NOTINIT;
return ownsdesinfo.SetNote((
const uint8_t *)s,len); }
177 uint8_t *
GetLocalCNAME(
size_t *len)
const {
if (!init)
return 0;
return ownsdesinfo.GetCNAME(len); }
179 void ClearAllSourceFlags();
182 void ClearAllSDESFlags();
188 size_t maxpacketsize;
189 double timestampunit;
191 RTPTime prevbuildtime,transmissiondelay;
197 void ClearFlags() { pname =
false; pemail =
false; plocation =
false; pphone =
false; ptool =
false; pnote =
false; }
198 bool ProcessedName()
const {
return pname; }
199 bool ProcessedEMail()
const {
return pemail; }
200 bool ProcessedLocation()
const {
return plocation; }
201 bool ProcessedPhone()
const {
return pphone; }
202 bool ProcessedTool()
const {
return ptool; }
203 bool ProcessedNote()
const {
return pnote; }
204 void SetProcessedName(
bool v) { pname = v; }
205 void SetProcessedEMail(
bool v) { pemail = v; }
206 void SetProcessedLocation(
bool v) { plocation = v; }
207 void SetProcessedPhone(
bool v) { pphone = v; }
208 void SetProcessedTool(
bool v) { ptool = v; }
209 void SetProcessedNote(
bool v) { pnote = v; }
211 bool pname,pemail,plocation,pphone,ptool,pnote;
214 RTCPSDESInfoInternal ownsdesinfo;
215 int interval_name,interval_email,interval_location;
216 int interval_phone,interval_tool,interval_note;
217 bool doname,doemail,doloc,dophone,dotool,donote;
223 #endif // RTCPPACKETBUILDER_H
int BuildBYEPacket(RTCPCompoundPacket **pack, const void *reason, size_t reasonlength, bool useSRifpossible=true)
Builds a BYE packet with reason for leaving specified by reason and length reasonlength.
The class RTCPSDESInfo is a container for RTCP SDES information.
Definition: rtcpsdesinfo.h:50
A memory manager.
Definition: rtpmemorymanager.h:144
void SetEMailInterval(int count)
Sets the RTCP interval for the SDES e-mail item.
Definition: rtcppacketbuilder.h:124
int SetLocalTool(const void *s, size_t len)
Sets the SDES tool item for the local participant to the value s with length len. ...
Definition: rtcppacketbuilder.h:171
void SetLocationInterval(int count)
Sets the RTCP interval for the SDES location item.
Definition: rtcppacketbuilder.h:132
Represents a table in which information about the participating sources is kept.
Definition: rtpsources.h:71
RTCPPacketBuilder(RTPSources &sources, RTPPacketBuilder &rtppackbuilder, RTPMemoryManager *mgr=0)
Creates an RTCPPacketBuilder instance.
uint8_t * GetLocalCNAME(size_t *len) const
Returns the own CNAME item with length len.
Definition: rtcppacketbuilder.h:177
This class is used to specify wallclock time, delay intervals etc.
Definition: rtptimeutilities.h:77
int SetLocalLocation(const void *s, size_t len)
Sets the SDES location item for the local participant to the value s with length len.
Definition: rtcppacketbuilder.h:165
int SetTimestampUnit(double tsunit)
Sets the timestamp unit to be used to tsunit.
Definition: rtcppacketbuilder.h:87
Represents an RTCP compound packet.
Definition: rtcpcompoundpacket.h:50
This class can be used to construct an RTCP compound packet.
Definition: rtcpcompoundpacketbuilder.h:56
void SetPhoneInterval(int count)
Sets the RTCP interval for the SDES phone item.
Definition: rtcppacketbuilder.h:140
This class can be used to build RTCP compound packets, on a higher level than the RTCPCompoundPacketB...
Definition: rtcppacketbuilder.h:60
void SetToolInterval(int count)
Sets the RTCP interval for the SDES tool item.
Definition: rtcppacketbuilder.h:148
int SetLocalName(const void *s, size_t len)
Sets the SDES name item for the local participant to the value s with length len. ...
Definition: rtcppacketbuilder.h:159
void SetNameInterval(int count)
Sets the RTCP interval for the SDES name item.
Definition: rtcppacketbuilder.h:116
int SetLocalEMail(const void *s, size_t len)
Sets the SDES e-mail item for the local participant to the value s with length len.
Definition: rtcppacketbuilder.h:162
int BuildNextPacket(RTCPCompoundPacket **pack)
Builds the next RTCP compound packet which should be sent and stores it in pack.
int Init(size_t maxpacksize, double timestampunit, const void *cname, size_t cnamelen)
Initializes the builder.
void SetNoteInterval(int count)
Sets the RTCP interval for the SDES note item.
Definition: rtcppacketbuilder.h:156
This class can be used to build RTP packets and is a bit more high-level than the RTPPacket class: it...
Definition: rtppacketbuilder.h:54
int SetLocalNote(const void *s, size_t len)
Sets the SDES note item for the local participant to the value s with length len. ...
Definition: rtcppacketbuilder.h:174
This class determines when RTCP compound packets should be sent.
Definition: rtcpscheduler.h:98
void Destroy()
Cleans up the builder.
int SetLocalPhone(const void *s, size_t len)
Sets the SDES phone item for the local participant to the value s with length len.
Definition: rtcppacketbuilder.h:168
int SetPreTransmissionDelay(const RTPTime &delay)
This function allows you to inform RTCP packet builder about the delay between sampling the first sam...
Definition: rtcppacketbuilder.h:98
int SetMaximumPacketSize(size_t maxpacksize)
Sets the maximum size allowed size of an RTCP compound packet to maxpacksize.
Definition: rtcppacketbuilder.h:90