SDRAngel
4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
|
#include <rtpsession.h>
Public Member Functions | |
RTPSession (RTPRandom *rnd=0) | |
virtual | ~RTPSession () |
int | Create (const RTPSessionParams &sessparams, RTPTransmitter *transmitter) |
void | Destroy () |
void | BYEDestroy (const RTPTime &maxwaittime, const void *reason, std::size_t reasonlength) |
bool | IsActive () |
uint32_t | GetLocalSSRC () |
int | AddDestination (const RTPAddress &addr) |
int | DeleteDestination (const RTPAddress &addr) |
void | ClearDestinations () |
bool | SupportsMulticasting () |
int | JoinMulticastGroup (const RTPAddress &addr) |
int | LeaveMulticastGroup (const RTPAddress &addr) |
int | SendPacket (const void *data, std::size_t len) |
int | SendPacket (const void *data, std::size_t len, uint8_t pt, bool mark, uint32_t timestampinc) |
int | SendPacketEx (const void *data, std::size_t len, uint16_t hdrextID, const void *hdrextdata, std::size_t numhdrextwords) |
int | SendPacketEx (const void *data, std::size_t len, uint8_t pt, bool mark, uint32_t timestampinc, uint16_t hdrextID, const void *hdrextdata, std::size_t numhdrextwords) |
int | SendRTCPAPPPacket (uint8_t subtype, const uint8_t name[4], const void *appdata, std::size_t appdatalen) |
int | SendRawData (const void *data, std::size_t len, bool usertpchannel) |
int | SetDefaultPayloadType (uint8_t pt) |
int | SetDefaultMark (bool m) |
int | SetDefaultTimestampIncrement (uint32_t timestampinc) |
int | IncrementTimestamp (uint32_t inc) |
int | IncrementTimestampDefault () |
int | SetPreTransmissionDelay (const RTPTime &delay) |
RTPTransmissionInfo * | GetTransmissionInfo () |
void | DeleteTransmissionInfo (RTPTransmissionInfo *inf) |
RTPTime | GetRTCPDelay () |
int | BeginDataAccess () |
bool | GotoFirstSource () |
bool | GotoNextSource () |
bool | GotoPreviousSource () |
bool | GotoFirstSourceWithData () |
bool | GotoNextSourceWithData () |
bool | GotoPreviousSourceWithData () |
RTPSourceData * | GetCurrentSourceInfo () |
RTPSourceData * | GetSourceInfo (uint32_t ssrc) |
RTPPacket * | GetNextPacket () |
uint16_t | GetNextSequenceNumber () const |
void | DeletePacket (RTPPacket *p) |
int | EndDataAccess () |
int | SetReceiveMode (RTPTransmitter::ReceiveMode m) |
int | AddToIgnoreList (const RTPAddress &addr) |
int | DeleteFromIgnoreList (const RTPAddress &addr) |
void | ClearIgnoreList () |
int | AddToAcceptList (const RTPAddress &addr) |
int | DeleteFromAcceptList (const RTPAddress &addr) |
void | ClearAcceptList () |
int | SetMaximumPacketSize (std::size_t s) |
int | SetSessionBandwidth (double bw) |
int | SetTimestampUnit (double u) |
void | SetNameInterval (int count) |
void | SetEMailInterval (int count) |
void | SetLocationInterval (int count) |
void | SetPhoneInterval (int count) |
void | SetToolInterval (int count) |
void | SetNoteInterval (int count) |
int | SetLocalName (const void *s, std::size_t len) |
int | SetLocalEMail (const void *s, std::size_t len) |
int | SetLocalLocation (const void *s, std::size_t len) |
int | SetLocalPhone (const void *s, std::size_t len) |
int | SetLocalTool (const void *s, std::size_t len) |
int | SetLocalNote (const void *s, std::size_t len) |
Protected Member Functions | |
virtual RTPTransmitter * | NewUserDefinedTransmitter () |
virtual void | OnRTPPacket (RTPPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
virtual void | OnRTCPCompoundPacket (RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
virtual void | OnSSRCCollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp) |
virtual void | OnCNAMECollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, const uint8_t *cname, std::size_t cnamelength) |
virtual void | OnNewSource (RTPSourceData *srcdat) |
virtual void | OnRemoveSource (RTPSourceData *srcdat) |
virtual void | OnTimeout (RTPSourceData *srcdat) |
virtual void | OnBYETimeout (RTPSourceData *srcdat) |
virtual void | OnAPPPacket (RTCPAPPPacket *apppacket, const RTPTime &receivetime, const RTPAddress *senderaddress) |
virtual void | OnUnknownPacketType (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
virtual void | OnUnknownPacketFormat (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
virtual void | OnNoteTimeout (RTPSourceData *srcdat) |
virtual void | OnRTCPSenderReport (RTPSourceData *srcdat) |
virtual void | OnRTCPReceiverReport (RTPSourceData *srcdat) |
virtual void | OnRTCPSDESItem (RTPSourceData *srcdat, RTCPSDESPacket::ItemType t, const void *itemdata, std::size_t itemlength) |
virtual void | OnRTCPSDESPrivateItem (RTPSourceData *srcdat, const void *prefixdata, std::size_t prefixlen, const void *valuedata, std::size_t valuelen) |
virtual void | OnBYEPacket (RTPSourceData *srcdat) |
virtual void | OnSendRTCPCompoundPacket (RTCPCompoundPacket *pack) |
void | SetChangeOutgoingData (bool change) |
void | SetChangeIncomingData (bool change) |
virtual int | OnChangeRTPOrRTCPData (const void *origdata, std::size_t origlen, bool isrtp, void **senddata, std::size_t *sendlen) |
virtual void | OnSentRTPOrRTCPData (void *senddata, std::size_t sendlen, bool isrtp) |
virtual bool | OnChangeIncomingData (RTPRawPacket *rawpack) |
virtual void | OnValidatedRTPPacket (RTPSourceData *srcdat, RTPPacket *rtppack, bool isonprobation, bool *ispackethandled) |
Private Member Functions | |
int | InternalCreate (const RTPSessionParams &sessparams) |
int | CreateCNAME (uint8_t *buffer, std::size_t *bufferlength, bool resolve) |
int | ProcessPolledData () |
int | ProcessRTCPCompoundPacket (RTCPCompoundPacket &rtcpcomppack, RTPRawPacket *pack) |
RTPRandom * | GetRandomNumberGenerator (RTPRandom *r) |
int | SendRTPData (const void *data, std::size_t len) |
int | SendRTCPData (const void *data, std::size_t len) |
Private Attributes | |
RTPRandom * | rtprnd |
bool | deletertprnd |
RTPTransmitter * | rtptrans |
bool | created |
bool | deletetransmitter |
bool | usingpollthread |
bool | acceptownpackets |
bool | useSR_BYEifpossible |
std::size_t | maxpacksize |
double | sessionbandwidth |
double | controlfragment |
double | sendermultiplier |
double | byemultiplier |
double | membermultiplier |
double | collisionmultiplier |
double | notemultiplier |
bool | sentpackets |
bool | m_changeIncomingData |
bool | m_changeOutgoingData |
RTPSessionSources | sources |
RTPPacketBuilder | packetbuilder |
RTCPScheduler | rtcpsched |
RTCPPacketBuilder | rtcpbuilder |
RTPCollisionList | collisionlist |
std::list< RTCPCompoundPacket * > | byepackets |
Friends | |
class | RTPSessionSources |
class | RTCPSessionPacketBuilder |
High level class for using RTP. For most RTP based applications, the RTPSession class will probably be the one to use. It handles the RTCP part completely internally, so the user can focus on sending and receiving the actual data. In case you want to use SRTP, you should create an RTPSecureSession derived class.
Definition at line 76 of file rtpsession.h.
qrtplib::RTPSession::RTPSession | ( | RTPRandom * | rnd = 0 | ) |
Constructs an RTPSession instance, optionally using a specific instance of a random number generator, and optionally installing a memory manager. Constructs an RTPSession instance, optionally using a specific instance of a random number generator, and optionally installing a memory manager. If no random number generator is specified, the RTPSession object will try to use either a RTPRandomURandom or RTPRandomRandS instance. If neither is available on the current platform, a RTPRandomRand48 instance will be used instead. By specifying a random number generator yourself, it is possible to use the same generator in several RTPSession instances.
Definition at line 60 of file rtpsession.cpp.
References created, qrtplib::RTPTimeInitializerObject::Dummy(), m_changeIncomingData, m_changeOutgoingData, and qrtplib::timeinit.
|
virtual |
Definition at line 78 of file rtpsession.cpp.
References deletertprnd, Destroy(), and rtprnd.
int qrtplib::RTPSession::AddDestination | ( | const RTPAddress & | addr | ) |
Adds addr
to the list of destinations.
Definition at line 415 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::AddDestination(), created, ERR_RTP_SESSION_NOTCREATED, and rtptrans.
Referenced by RTPSink::addDestination(), and RTPSink::setDestination().
int qrtplib::RTPSession::AddToAcceptList | ( | const RTPAddress & | addr | ) |
Adds addr
to the list of addresses to accept.
Definition at line 814 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::AddToAcceptList(), created, ERR_RTP_SESSION_NOTCREATED, and rtptrans.
int qrtplib::RTPSession::AddToIgnoreList | ( | const RTPAddress & | addr | ) |
Adds addr
to the list of addresses to ignore.
Definition at line 793 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::AddToIgnoreList(), created, ERR_RTP_SESSION_NOTCREATED, and rtptrans.
int qrtplib::RTPSession::BeginDataAccess | ( | ) |
The following member functions (till EndDataAccess}) need to be accessed between a call to BeginDataAccess and EndDataAccess. The BeginDataAccess function makes sure that the poll thread won't access the source table at the same time that you're using it. When the EndDataAccess is called, the lock on the source table is freed again.
Definition at line 699 of file rtpsession.cpp.
References created, and ERR_RTP_SESSION_NOTCREATED.
void qrtplib::RTPSession::BYEDestroy | ( | const RTPTime & | maxwaittime, |
const void * | reason, | ||
std::size_t | reasonlength | ||
) |
Sends a BYE packet and leaves the session. Sends a BYE packet and leaves the session. At most a time maxwaittime
will be waited to send the BYE packet. If this time expires, the session will be left without sending a BYE packet. The BYE packet will contain as reason for leaving reason
with length reasonlength
.
Definition at line 321 of file rtpsession.cpp.
References qrtplib::RTCPPacketBuilder::BuildBYEPacket(), byepackets, qrtplib::RTPCollisionList::Clear(), qrtplib::RTPSources::Clear(), collisionlist, created, qrtplib::RTPTime::CurrentTime(), deletetransmitter, qrtplib::RTPPacketBuilder::Destroy(), qrtplib::RTCPPacketBuilder::Destroy(), qrtplib::RTCPCompoundPacket::GetCompoundPacketData(), qrtplib::RTCPCompoundPacket::GetCompoundPacketLength(), qrtplib::RTCPScheduler::IsTime(), OnSendRTCPCompoundPacket(), packetbuilder, qrtplib::RTCPScheduler::Reset(), RTCP_BYE_MAXREASONLENGTH, rtcpbuilder, rtcpsched, rtptrans, qrtplib::RTCPScheduler::ScheduleBYEPacket(), SendRTCPData(), sentpackets, sources, useSR_BYEifpossible, and qrtplib::RTPTime::Wait().
Referenced by RTPSink::~RTPSink().
void qrtplib::RTPSession::ClearAcceptList | ( | ) |
Clears the list of addresses to accept.
Definition at line 828 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::ClearAcceptList(), created, and rtptrans.
void qrtplib::RTPSession::ClearDestinations | ( | ) |
Clears the list of destinations.
Definition at line 429 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::ClearDestinations(), created, and rtptrans.
Referenced by RTPSink::setDestination().
void qrtplib::RTPSession::ClearIgnoreList | ( | ) |
Clears the list of addresses to ignore.
Definition at line 807 of file rtpsession.cpp.
References qrtplib::RTPTransmitter::ClearIgnoreList(), created, and rtptrans.
int qrtplib::RTPSession::Create | ( | const RTPSessionParams & | sessparams, |
RTPTransmitter * | transmitter | ||
) |
Creates an RTP session. This function creates an RTP session with parameters sessparams
, which will use a transmitter corresponding to proto
. Parameters for this transmitter can be specified as well. If proto
is of type RTPTransmitter::UserDefinedProto, the NewUserDefinedTransmitter function must be implemented.Creates an RTP session using transmitter
as transmission component. This function creates an RTP session with parameters sessparams
, which will use the transmission component transmitter
. Initialization and destruction of the transmitter will not be done by the RTPSession class if this Create function is used. This function can be useful if you which to reuse the transmission component in another RTPSession instance, once the original RTPSession isn't using the transmitter anymore.
Definition at line 145 of file rtpsession.cpp.
References created, deletetransmitter, ERR_RTP_SESSION_ALREADYCREATED, ERR_RTP_SESSION_MAXPACKETSIZETOOSMALL, qrtplib::RTPSessionParams::GetMaximumPacketSize(), qrtplib::RTPSessionParams::GetSenderReportForBYE(), InternalCreate(), qrtplib::RTPSessionParams::IsUsingPollThread(), maxpacksize, RTP_MINPACKETSIZE, rtptrans, sentpackets, qrtplib::RTPTransmitter::SetMaximumPacketSize(), useSR_BYEifpossible, and usingpollthread.
Referenced by RTPSink::RTPSink().
|
private |
Definition at line 1145 of file rtpsession.cpp.
References RTCP_SDES_MAXITEMLENGTH.
Referenced by InternalCreate().
int qrtplib::RTPSession::DeleteDestination | ( | const RTPAddress & | addr | ) |
Deletes addr
from the list of destinations.
Definition at line 422 of file rtpsession.cpp.
References created, qrtplib::RTPTransmitter::DeleteDestination(), ERR_RTP_SESSION_NOTCREATED, and rtptrans.
Referenced by RTPSink::deleteDestination(), and RTPSink::setDestination().
int qrtplib::RTPSession::DeleteFromAcceptList | ( | const RTPAddress & | addr | ) |
Deletes addr
from the list of addresses to accept.
Definition at line 821 of file rtpsession.cpp.
References created, qrtplib::RTPTransmitter::DeleteFromAcceptList(), ERR_RTP_SESSION_NOTCREATED, and rtptrans.
int qrtplib::RTPSession::DeleteFromIgnoreList | ( | const RTPAddress & | addr | ) |
Deletes addr
from the list of addresses to ignore.
Definition at line 800 of file rtpsession.cpp.
References created, qrtplib::RTPTransmitter::DeleteFromIgnoreList(), ERR_RTP_SESSION_NOTCREATED, and rtptrans.
void qrtplib::RTPSession::DeletePacket | ( | RTPPacket * | p | ) |
Frees the memory used by p
.
Definition at line 774 of file rtpsession.cpp.
void qrtplib::RTPSession::DeleteTransmissionInfo | ( | RTPTransmissionInfo * | inf | ) |
Frees the memory used by the transmission information inf
.
Definition at line 681 of file rtpsession.cpp.
References created, qrtplib::RTPTransmitter::DeleteTransmissionInfo(), and rtptrans.
void qrtplib::RTPSession::Destroy | ( | ) |
Leaves the session without sending a BYE packet.
Definition at line 299 of file rtpsession.cpp.
References byepackets, qrtplib::RTPCollisionList::Clear(), qrtplib::RTPSources::Clear(), collisionlist, created, deletetransmitter, qrtplib::RTPPacketBuilder::Destroy(), qrtplib::RTCPPacketBuilder::Destroy(), packetbuilder, qrtplib::RTCPScheduler::Reset(), rtcpbuilder, rtcpsched, rtptrans, and sources.
Referenced by ~RTPSession().
int qrtplib::RTPSession::EndDataAccess | ( | ) |
See BeginDataAccess.
Definition at line 779 of file rtpsession.cpp.
References created, and ERR_RTP_SESSION_NOTCREATED.
RTPSourceData * qrtplib::RTPSession::GetCurrentSourceInfo | ( | ) |
Returns the RTPSourceData
instance for the currently selected participant.
Definition at line 748 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GetCurrentSourceInfo(), and sources.
uint32_t qrtplib::RTPSession::GetLocalSSRC | ( | ) |
Returns our own SSRC.
Definition at line 404 of file rtpsession.cpp.
References created, qrtplib::RTPPacketBuilder::GetSSRC(), and packetbuilder.
RTPPacket * qrtplib::RTPSession::GetNextPacket | ( | ) |
Extracts the next packet from the received packets queue of the current participant, or NULL if no more packets are available. Extracts the next packet from the received packets queue of the current participant, or NULL if no more packets are available. When the packet is no longer needed, its memory should be freed using the DeletePacket member function.
Definition at line 762 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GetNextPacket(), and sources.
uint16_t qrtplib::RTPSession::GetNextSequenceNumber | ( | ) | const |
Returns the Sequence Number that will be used in the next SendPacket function call.
Definition at line 769 of file rtpsession.cpp.
References qrtplib::RTPPacketBuilder::GetSequenceNumber(), and packetbuilder.
Definition at line 1169 of file rtpsession.cpp.
References qrtplib::RTPRandom::CreateDefaultRandomNumberGenerator(), and deletertprnd.
RTPTime qrtplib::RTPSession::GetRTCPDelay | ( | ) |
Returns the time interval after which an RTCP compound packet may have to be sent (only works when you're not using the poll thread.
Definition at line 688 of file rtpsession.cpp.
References created, qrtplib::RTCPScheduler::GetTransmissionDelay(), rtcpsched, and usingpollthread.
RTPSourceData * qrtplib::RTPSession::GetSourceInfo | ( | uint32_t | ssrc | ) |
Returns the RTPSourceData
instance for the participant identified by ssrc
, or NULL if no such entry exists.
Definition at line 755 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GetSourceInfo(), and sources.
RTPTransmissionInfo * qrtplib::RTPSession::GetTransmissionInfo | ( | ) |
This function returns an instance of a subclass of RTPTransmissionInfo which will give some additional information about the transmitter (a list of local IP addresses for example). This function returns an instance of a subclass of RTPTransmissionInfo which will give some additional information about the transmitter (a list of local IP addresses for example). The user has to free the returned instance when it is no longer needed, preferably using the DeleteTransmissionInfo function.
Definition at line 674 of file rtpsession.cpp.
References created, qrtplib::RTPTransmitter::GetTransmissionInfo(), and rtptrans.
bool qrtplib::RTPSession::GotoFirstSource | ( | ) |
Starts the iteration over the participants by going to the first member in the table. Starts the iteration over the participants by going to the first member in the table. If a member was found, the function returns true
, otherwise it returns false
.
Definition at line 706 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoFirstSource(), and sources.
bool qrtplib::RTPSession::GotoFirstSourceWithData | ( | ) |
Sets the current source to be the first source in the table which has RTPPacket instances that we haven't extracted yet. Sets the current source to be the first source in the table which has RTPPacket instances that we haven't extracted yet. If no such member was found, the function returns false
, otherwise it returns true
.
Definition at line 727 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoFirstSourceWithData(), and sources.
bool qrtplib::RTPSession::GotoNextSource | ( | ) |
Sets the current source to be the next source in the table. Sets the current source to be the next source in the table. If we're already at the last source, the function returns false
, otherwise it returns true
.
Definition at line 713 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoNextSource(), and sources.
bool qrtplib::RTPSession::GotoNextSourceWithData | ( | ) |
Sets the current source to be the next source in the table which has RTPPacket instances that we haven't extracted yet. Sets the current source to be the next source in the table which has RTPPacket instances that we haven't extracted yet. If no such member was found, the function returns false
, otherwise it returns true
.
Definition at line 734 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoNextSourceWithData(), and sources.
bool qrtplib::RTPSession::GotoPreviousSource | ( | ) |
Sets the current source to be the previous source in the table. Sets the current source to be the previous source in the table. If we're at the first source, the function returns false
, otherwise it returns true
.
Definition at line 720 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoPreviousSource(), and sources.
bool qrtplib::RTPSession::GotoPreviousSourceWithData | ( | ) |
Sets the current source to be the previous source in the table which has RTPPacket instances that we haven't extracted yet. Sets the current source to be the previous source in the table which has RTPPacket instances that we haven't extracted yet. If no such member was found, the function returns false
, otherwise it returns true
.
Definition at line 741 of file rtpsession.cpp.
References created, qrtplib::RTPSources::GotoPreviousSourceWithData(), and sources.
int qrtplib::RTPSession::IncrementTimestamp | ( | uint32_t | inc | ) |
This function increments the timestamp with the amount given by inc
. This function increments the timestamp with the amount given by inc
. This can be useful if, for example, a packet was not sent because it contained only silence. Then, this function should be called to increment the timestamp with the appropriate amount so that the next packets will still be played at the correct time at other hosts.
Definition at line 641 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::IncrementTimestamp(), and packetbuilder.
int qrtplib::RTPSession::IncrementTimestampDefault | ( | ) |
This function increments the timestamp with the amount given set by the SetDefaultTimestampIncrement member function. This function increments the timestamp with the amount given set by the SetDefaultTimestampIncrement member function. This can be useful if, for example, a packet was not sent because it contained only silence. Then, this function should be called to increment the timestamp with the appropriate amount so that the next packets will still be played at the correct time at other hosts.
Definition at line 652 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::IncrementTimestampDefault(), and packetbuilder.
|
private |
Definition at line 171 of file rtpsession.cpp.
References qrtplib::RTPSessionParams::AcceptOwnPackets(), acceptownpackets, qrtplib::RTPPacketBuilder::AdjustSSRC(), byemultiplier, qrtplib::RTPSources::Clear(), collisionmultiplier, controlfragment, CreateCNAME(), created, qrtplib::RTPSources::CreateOwnSSRC(), deletetransmitter, qrtplib::RTPPacketBuilder::Destroy(), qrtplib::RTCPPacketBuilder::Destroy(), qrtplib::RTPSessionParams::GetBYETimeoutMultiplier(), qrtplib::RTPSessionParams::GetCNAME(), qrtplib::RTPSessionParams::GetCollisionTimeoutMultiplier(), qrtplib::RTPSessionParams::GetControlTrafficFraction(), qrtplib::RTPTransmitter::GetHeaderOverhead(), qrtplib::RTPSessionParams::GetMinimumRTCPTransmissionInterval(), qrtplib::RTPSessionParams::GetNoteTimeoutMultiplier(), qrtplib::RTPSessionParams::GetOwnTimestampUnit(), qrtplib::RTPSessionParams::GetPredefinedSSRC(), qrtplib::RTPSessionParams::GetReceiveMode(), qrtplib::RTPSessionParams::GetRequestImmediateBYE(), qrtplib::RTPSessionParams::GetResolveLocalHostname(), qrtplib::RTPSessionParams::GetSenderControlBandwidthFraction(), qrtplib::RTPSessionParams::GetSenderTimeoutMultiplier(), qrtplib::RTPSessionParams::GetSessionBandwidth(), qrtplib::RTPSessionParams::GetSourceTimeoutMultiplier(), qrtplib::RTPPacketBuilder::GetSSRC(), qrtplib::RTPSessionParams::GetUseHalfRTCPIntervalAtStartup(), qrtplib::RTPSessionParams::GetUsePredefinedSSRC(), qrtplib::RTPPacketBuilder::Init(), qrtplib::RTCPPacketBuilder::Init(), maxpacksize, membermultiplier, notemultiplier, packetbuilder, qrtplib::RTCPScheduler::Reset(), rtcpbuilder, rtcpsched, rtptrans, sendermultiplier, sessionbandwidth, qrtplib::RTCPScheduler::SetHeaderOverhead(), qrtplib::RTCPSchedulerParams::SetMinimumTransmissionInterval(), qrtplib::RTCPScheduler::SetParameters(), qrtplib::RTPTransmitter::SetReceiveMode(), qrtplib::RTCPSchedulerParams::SetRequestImmediateBYE(), qrtplib::RTCPSchedulerParams::SetRTCPBandwidth(), qrtplib::RTCPSchedulerParams::SetSenderBandwidthFraction(), qrtplib::RTCPSchedulerParams::SetUseHalfAtStartup(), and sources.
Referenced by Create().
bool qrtplib::RTPSession::IsActive | ( | ) |
Returns whether the session has been created or not.
Definition at line 399 of file rtpsession.cpp.
References created.
int qrtplib::RTPSession::JoinMulticastGroup | ( | const RTPAddress & | addr | ) |
Joins the multicast group specified by addr
.
Definition at line 443 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPTransmitter::JoinMulticastGroup(), and rtptrans.
int qrtplib::RTPSession::LeaveMulticastGroup | ( | const RTPAddress & | addr | ) |
Leaves the multicast group specified by addr
.
Definition at line 450 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPTransmitter::LeaveMulticastGroup(), and rtptrans.
|
inlineprotectedvirtual |
Allocate a user defined transmitter. In case you specified in the Create function that you want to use a user defined transmitter, you should override this function. The RTPTransmitter instance returned by this function will then be used to send and receive RTP and RTCP packets. Note that when the session is destroyed, this RTPTransmitter instance will be destroyed as well.
Definition at line 583 of file rtpsession.h.
|
inlineprotectedvirtual |
Is called when an RTCP APP packet apppacket
has been received at time receivetime
from address senderaddress
.
Definition at line 611 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnAPPPacket().
|
inlineprotectedvirtual |
Is called when a BYE packet has been processed for source srcdat
.
Definition at line 639 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnBYEPacket().
|
inlineprotectedvirtual |
Is called when participant srcdat
is timed after having sent a BYE packet.
Definition at line 608 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnBYETimeout().
|
inlineprotectedvirtual |
By overriding this function, the raw incoming data can be inspected and modified (e.g. for encryption). By overriding this function, the raw incoming data can be inspected and modified (e.g. for encryption). If the function returns false
, the packet is discarded.
Definition at line 653 of file rtpsession.h.
Referenced by ProcessPolledData().
|
inlineprotectedvirtual |
If RTPSession::SetChangeOutgoingData was sent to true, overriding this you can change the data packet that will actually be sent, for example adding encryption. If RTPSession::SetChangeOutgoingData was sent to true, overriding this you can change the data packet that will actually be sent, for example adding encryption. Note that no memory management will be performed on the senddata
pointer you fill in, so if it needs to be deleted at some point you need to take care of this in some way yourself, a good way may be to do this in RTPSession::OnSentRTPOrRTCPData. If senddata
is set to 0, no packet will be sent out. This also provides a way to turn off sending RTCP packets if desired.
Definition at line 646 of file rtpsession.h.
References ERR_RTP_RTPSESSION_CHANGEREQUESTEDBUTNOTIMPLEMENTED.
Referenced by SendRTCPData(), and SendRTPData().
|
inlineprotectedvirtual |
Is called when another CNAME was received than the one already present for source srcdat
.
Definition at line 596 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnCNAMECollision().
|
inlineprotectedvirtual |
Is called when a new entry srcdat
is added to the source table.
Definition at line 599 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnNewSource().
|
inlineprotectedvirtual |
Is called when the SDES NOTE item for source srcdat
has been timed out.
Definition at line 620 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnNoteTimeout().
|
inlineprotectedvirtual |
Is called when the entry srcdat
is about to be deleted from the source table.
Definition at line 602 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRemoveSource().
|
inlineprotectedvirtual |
Is called when an incoming RTCP packet is about to be processed.
Definition at line 590 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTCPCompoundPacket().
|
inlineprotectedvirtual |
Is called when an RTCP receiver report has been processed for this source.
Definition at line 626 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTCPReceiverReport().
|
inlineprotectedvirtual |
Is called when a specific SDES item was received for this source.
Definition at line 629 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTCPSDESItem().
|
inlineprotectedvirtual |
Is called when a specific SDES item of 'private' type was received for this source.
Definition at line 634 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTCPSDESPrivateItem().
|
inlineprotectedvirtual |
Is called when an RTCP sender report has been processed for this source.
Definition at line 623 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTCPSenderReport().
|
inlineprotectedvirtual |
Is called when an incoming RTP packet is about to be processed. Is called when an incoming RTP packet is about to be processed. This is not a good function to process an RTP packet in, in case you want to avoid iterating over the sources using the GotoFirst/GotoNext functions. In that case, the RTPSession::OnValidatedRTPPacket function should be used.
Definition at line 587 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnRTPPacket().
|
inlineprotectedvirtual |
Is called when an RTCP compound packet has just been sent (useful to inspect outgoing RTCP data).
Definition at line 642 of file rtpsession.h.
Referenced by BYEDestroy(), and ProcessPolledData().
|
inlineprotectedvirtual |
This function is called when an RTP or RTCP packet was sent, it can be helpful when data was allocated in RTPSession::OnChangeRTPOrRTCPData to deallocate it here.
Definition at line 650 of file rtpsession.h.
Referenced by SendRTCPData(), and SendRTPData().
|
inlineprotectedvirtual |
Is called when an SSRC collision was detected. Is called when an SSRC collision was detected. The instance srcdat
is the one present in the table, the address senderaddress
is the one that collided with one of the addresses and isrtp
indicates against which address of srcdat
the check failed.
Definition at line 593 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnSSRCCollision().
|
inlineprotectedvirtual |
Is called when participant srcdat
is timed out.
Definition at line 605 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnTimeout().
|
inlineprotectedvirtual |
Is called when an unknown packet format for a known packet type was detected.
Definition at line 617 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnUnknownPacketFormat().
|
inlineprotectedvirtual |
Is called when an unknown RTCP packet type was detected.
Definition at line 614 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnUnknownPacketType().
|
inlineprotectedvirtual |
Allows you to use an RTP packet from the specified source directly. Allows you to use an RTP packet from the specified source directly. If ispackethandled
is set to true
, the packet will no longer be stored in this source's packet list. Note that if you do set this flag, you'll need to deallocate the packet yourself at an appropriate time.
The difference with RTPSession::OnRTPPacket is that that function will always process the RTP packet further and is therefore not really suited to actually do something with the data.
Definition at line 657 of file rtpsession.h.
Referenced by qrtplib::RTPSessionSources::OnValidatedRTPPacket().
|
private |
Definition at line 994 of file rtpsession.cpp.
References acceptownpackets, qrtplib::RTCPScheduler::AnalyseOutgoing(), qrtplib::RTCPPacketBuilder::BuildBYEPacket(), qrtplib::RTCPPacketBuilder::BuildNextPacket(), byemultiplier, byepackets, qrtplib::RTCPScheduler::CalculateDeterministicInterval(), qrtplib::RTPSessionSources::ClearOwnCollisionFlag(), collisionlist, collisionmultiplier, created, qrtplib::RTPPacketBuilder::CreateNewSSRC(), qrtplib::RTPSources::CreateOwnSSRC(), qrtplib::RTPTime::CurrentTime(), qrtplib::RTPSources::DeleteOwnSSRC(), qrtplib::RTPSessionSources::DetectedOwnCollision(), qrtplib::RTCPCompoundPacket::GetCompoundPacketData(), qrtplib::RTCPCompoundPacket::GetCompoundPacketLength(), qrtplib::RTPTime::GetDouble(), qrtplib::RTPTransmitter::GetNextPacket(), qrtplib::RTPRawPacket::GetReceiveTime(), qrtplib::RTPRawPacket::GetSenderAddress(), qrtplib::RTCPScheduler::IsTime(), m_changeIncomingData, membermultiplier, qrtplib::RTPSources::MultipleTimeouts(), notemultiplier, OnChangeIncomingData(), OnSendRTCPCompoundPacket(), packetbuilder, qrtplib::RTPSources::ProcessRawPacket(), rtcpbuilder, rtcpsched, rtptrans, qrtplib::RTCPScheduler::ScheduleBYEPacket(), sendermultiplier, SendRTCPData(), sentpackets, sources, qrtplib::RTPCollisionList::Timeout(), qrtplib::RTPCollisionList::UpdateAddress(), and useSR_BYEifpossible.
|
private |
int qrtplib::RTPSession::SendPacket | ( | const void * | data, |
std::size_t | len | ||
) |
Sends the RTP packet with payload data
which has length len
. Sends the RTP packet with payload data
which has length len
. The used payload type, marker and timestamp increment will be those that have been set using the SetDefault
member functions.
Definition at line 457 of file rtpsession.cpp.
References qrtplib::RTPPacketBuilder::BuildPacket(), created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::GetPacket(), qrtplib::RTPPacketBuilder::GetPacketLength(), packetbuilder, SendRTPData(), sentpackets, qrtplib::RTPSources::SentRTPPacket(), and sources.
Referenced by RTPSink::write().
int qrtplib::RTPSession::SendPacket | ( | const void * | data, |
std::size_t | len, | ||
uint8_t | pt, | ||
bool | mark, | ||
uint32_t | timestampinc | ||
) |
Sends the RTP packet with payload data
which has length len
. It will use payload type pt
, marker mark
and after the packet has been built, the timestamp will be incremented by timestampinc
.
Definition at line 478 of file rtpsession.cpp.
References qrtplib::RTPPacketBuilder::BuildPacket(), created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::GetPacket(), qrtplib::RTPPacketBuilder::GetPacketLength(), packetbuilder, SendRTPData(), sentpackets, qrtplib::RTPSources::SentRTPPacket(), and sources.
int qrtplib::RTPSession::SendPacketEx | ( | const void * | data, |
std::size_t | len, | ||
uint16_t | hdrextID, | ||
const void * | hdrextdata, | ||
std::size_t | numhdrextwords | ||
) |
Sends the RTP packet with payload data
which has length len
. The packet will contain a header extension with identifier hdrextID
and containing data hdrextdata
. The length of this data is given by numhdrextwords
and is specified in a number of 32-bit words. The used payload type, marker and timestamp increment will be those that have been set using the SetDefault
member functions.
Definition at line 499 of file rtpsession.cpp.
References qrtplib::RTPPacketBuilder::BuildPacketEx(), created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::GetPacket(), qrtplib::RTPPacketBuilder::GetPacketLength(), packetbuilder, SendRTPData(), sentpackets, qrtplib::RTPSources::SentRTPPacket(), and sources.
int qrtplib::RTPSession::SendPacketEx | ( | const void * | data, |
std::size_t | len, | ||
uint8_t | pt, | ||
bool | mark, | ||
uint32_t | timestampinc, | ||
uint16_t | hdrextID, | ||
const void * | hdrextdata, | ||
std::size_t | numhdrextwords | ||
) |
Sends the RTP packet with payload data
which has length len
. It will use payload type pt
, marker mark
and after the packet has been built, the timestamp will be incremented by timestampinc
. The packet will contain a header extension with identifier hdrextID
and containing data hdrextdata
. The length of this data is given by numhdrextwords
and is specified in a number of 32-bit words.
Definition at line 520 of file rtpsession.cpp.
References qrtplib::RTPPacketBuilder::BuildPacketEx(), created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTPPacketBuilder::GetPacket(), qrtplib::RTPPacketBuilder::GetPacketLength(), packetbuilder, SendRTPData(), sentpackets, qrtplib::RTPSources::SentRTPPacket(), and sources.
int qrtplib::RTPSession::SendRawData | ( | const void * | data, |
std::size_t | len, | ||
bool | usertpchannel | ||
) |
With this function raw data can be sent directly over the RTP or RTCP channel (if they are different); the data is not passed through the RTPSession::OnChangeRTPOrRTCPData function.
Definition at line 594 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtptrans, qrtplib::RTPTransmitter::SendRTCPData(), and qrtplib::RTPTransmitter::SendRTPData().
int qrtplib::RTPSession::SendRTCPAPPPacket | ( | uint8_t | subtype, |
const uint8_t | name[4], | ||
const void * | appdata, | ||
std::size_t | appdatalen | ||
) |
If sending of RTCP APP packets was enabled at compile time, this function creates a compound packet containing an RTCP APP packet and sends it immediately. If sending of RTCP APP packets was enabled at compile time, this function creates a compound packet containing an RTCP APP packet and sends it immediately. If successful, the function returns the number of bytes in the RTCP compound packet. Note that this immediate sending is not compliant with the RTP specification, so use with care.
Definition at line 543 of file rtpsession.cpp.
References qrtplib::RTCPCompoundPacketBuilder::AddAPPPacket(), qrtplib::RTCPCompoundPacketBuilder::AddSDESNormalItem(), qrtplib::RTCPCompoundPacketBuilder::AddSDESSource(), qrtplib::RTCPSDESPacket::CNAME, created, qrtplib::RTCPCompoundPacketBuilder::EndBuild(), ERR_RTP_SESSION_NOTCREATED, qrtplib::RTCPCompoundPacket::GetCompoundPacketData(), qrtplib::RTCPCompoundPacket::GetCompoundPacketLength(), qrtplib::RTCPPacketBuilder::GetLocalCNAME(), qrtplib::RTPPacketBuilder::GetSSRC(), qrtplib::RTCPCompoundPacketBuilder::InitBuild(), maxpacksize, packetbuilder, rtcpbuilder, SendRTCPData(), sentpackets, and qrtplib::RTCPCompoundPacketBuilder::StartReceiverReport().
|
private |
Definition at line 1209 of file rtpsession.cpp.
References m_changeOutgoingData, OnChangeRTPOrRTCPData(), OnSentRTPOrRTCPData(), rtptrans, and qrtplib::RTPTransmitter::SendRTCPData().
Referenced by BYEDestroy(), ProcessPolledData(), and SendRTCPAPPPacket().
|
private |
Definition at line 1187 of file rtpsession.cpp.
References m_changeOutgoingData, OnChangeRTPOrRTCPData(), OnSentRTPOrRTCPData(), rtptrans, and qrtplib::RTPTransmitter::SendRTPData().
Referenced by SendPacket(), and SendPacketEx().
|
inlineprotected |
If this is set to true, incoming data will be passed through RTPSession::OnChangeIncomingData, allowing you to modify the data (e.g. to decrypt it).
Definition at line 501 of file rtpsession.h.
|
inlineprotected |
If this is set to true, outgoing data will be passed through RTPSession::OnChangeRTPOrRTCPData and RTPSession::OnSentRTPOrRTCPData, allowing you to modify the data (e.g. to encrypt it).
Definition at line 494 of file rtpsession.h.
int qrtplib::RTPSession::SetDefaultMark | ( | bool | m | ) |
Sets the default marker for RTP packets to m
.
Definition at line 619 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, packetbuilder, and qrtplib::RTPPacketBuilder::SetDefaultMark().
Referenced by RTPSink::setPayloadInformation().
int qrtplib::RTPSession::SetDefaultPayloadType | ( | uint8_t | pt | ) |
Sets the default payload type for RTP packets to pt
.
Definition at line 608 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, packetbuilder, and qrtplib::RTPPacketBuilder::SetDefaultPayloadType().
Referenced by RTPSink::setPayloadInformation().
int qrtplib::RTPSession::SetDefaultTimestampIncrement | ( | uint32_t | timestampinc | ) |
Sets the default value to increment the timestamp with to timestampinc
.
Definition at line 630 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, packetbuilder, and qrtplib::RTPPacketBuilder::SetDefaultTimestampIncrement().
Referenced by RTPSink::setPayloadInformation().
void qrtplib::RTPSession::SetEMailInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES e-mail item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES e-mail item will be added after the sources in the source table have been processed count
times.
Definition at line 899 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetEMailInterval().
int qrtplib::RTPSession::SetLocalEMail | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES e-mail item for the local participant to the value s
with length len
.
Definition at line 944 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalEMail().
int qrtplib::RTPSession::SetLocalLocation | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES location item for the local participant to the value s
with length len
.
Definition at line 954 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalLocation().
int qrtplib::RTPSession::SetLocalName | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES name item for the local participant to the value s
with length len
.
Definition at line 934 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalName().
int qrtplib::RTPSession::SetLocalNote | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES note item for the local participant to the value s
with length len
.
Definition at line 984 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalNote().
int qrtplib::RTPSession::SetLocalPhone | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES phone item for the local participant to the value s
with length len
.
Definition at line 964 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalPhone().
int qrtplib::RTPSession::SetLocalTool | ( | const void * | s, |
std::size_t | len | ||
) |
Sets the SDES tool item for the local participant to the value s
with length len
.
Definition at line 974 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocalTool().
void qrtplib::RTPSession::SetLocationInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES location item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES location item will be added after the sources in the source table have been processed count
times.
Definition at line 906 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetLocationInterval().
int qrtplib::RTPSession::SetMaximumPacketSize | ( | std::size_t | s | ) |
Sets the maximum allowed packet size to s
.
Definition at line 835 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_MAXPACKETSIZETOOSMALL, ERR_RTP_SESSION_NOTCREATED, maxpacksize, packetbuilder, rtcpbuilder, RTP_MINPACKETSIZE, rtptrans, qrtplib::RTPPacketBuilder::SetMaximumPacketSize(), qrtplib::RTCPPacketBuilder::SetMaximumPacketSize(), and qrtplib::RTPTransmitter::SetMaximumPacketSize().
Referenced by RTPSink::setPayloadInformation().
void qrtplib::RTPSession::SetNameInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES name item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES name item will be added after the sources in the source table have been processed count
times.
Definition at line 892 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetNameInterval().
void qrtplib::RTPSession::SetNoteInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES note item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES note item will be added after the sources in the source table have been processed count
times.
Definition at line 927 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetNoteInterval().
void qrtplib::RTPSession::SetPhoneInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES phone item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES phone item will be added after the sources in the source table have been processed count
times.
Definition at line 913 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetPhoneInterval().
int qrtplib::RTPSession::SetPreTransmissionDelay | ( | const RTPTime & | delay | ) |
This function allows you to inform the library about the delay between sampling the first sample of a packet and sending the packet. This function allows you to inform the library about the delay between sampling the first sample of a packet and sending the packet. This delay is taken into account when calculating the relation between RTP timestamp and wallclock time, used for inter-media synchronization.
Definition at line 663 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetPreTransmissionDelay().
int qrtplib::RTPSession::SetReceiveMode | ( | RTPTransmitter::ReceiveMode | m | ) |
Sets the receive mode to m
. Sets the receive mode to m
. Note that when the receive mode is changed, the list of addresses to be ignored ot accepted will be cleared.
Definition at line 786 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtptrans, and qrtplib::RTPTransmitter::SetReceiveMode().
int qrtplib::RTPSession::SetSessionBandwidth | ( | double | bw | ) |
Sets the session bandwidth to bw
, which is specified in bytes per second.
Definition at line 865 of file rtpsession.cpp.
References controlfragment, created, ERR_RTP_SESSION_NOTCREATED, qrtplib::RTCPScheduler::GetParameters(), rtcpsched, sessionbandwidth, qrtplib::RTCPScheduler::SetParameters(), and qrtplib::RTCPSchedulerParams::SetRTCPBandwidth().
int qrtplib::RTPSession::SetTimestampUnit | ( | double | u | ) |
Sets the timestamp unit for our own data. Sets the timestamp unit for our own data. The timestamp unit is defined as a time interval in seconds divided by the corresponding timestamp interval. For example, for 8000 Hz audio, the timestamp unit would typically be 1/8000. Since this value is initially set to an illegal value, the user must set this to an allowed value to be able to create a session.
Definition at line 881 of file rtpsession.cpp.
References created, ERR_RTP_SESSION_NOTCREATED, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetTimestampUnit().
Referenced by RTPSink::setPayloadInformation().
void qrtplib::RTPSession::SetToolInterval | ( | int | count | ) |
Sets the RTCP interval for the SDES tool item. After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If count
is zero or negative, nothing will happen. If count
is positive, an SDES tool item will be added after the sources in the source table have been processed count
times.
Definition at line 920 of file rtpsession.cpp.
References created, rtcpbuilder, and qrtplib::RTCPPacketBuilder::SetToolInterval().
bool qrtplib::RTPSession::SupportsMulticasting | ( | ) |
Returns true
if multicasting is supported.
Definition at line 436 of file rtpsession.cpp.
References created, rtptrans, and qrtplib::RTPTransmitter::SupportsMulticasting().
|
friend |
Definition at line 580 of file rtpsession.h.
|
friend |
Definition at line 579 of file rtpsession.h.
|
private |
Definition at line 557 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 563 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 577 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), and ProcessPolledData().
|
private |
Definition at line 575 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), and ProcessPolledData().
|
private |
Definition at line 565 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 561 of file rtpsession.h.
Referenced by InternalCreate(), and SetSessionBandwidth().
|
private |
Definition at line 554 of file rtpsession.h.
Referenced by AddDestination(), AddToAcceptList(), AddToIgnoreList(), BeginDataAccess(), BYEDestroy(), ClearAcceptList(), ClearDestinations(), ClearIgnoreList(), Create(), DeleteDestination(), DeleteFromAcceptList(), DeleteFromIgnoreList(), DeleteTransmissionInfo(), Destroy(), EndDataAccess(), GetCurrentSourceInfo(), GetLocalSSRC(), GetNextPacket(), GetRTCPDelay(), GetSourceInfo(), GetTransmissionInfo(), GotoFirstSource(), GotoFirstSourceWithData(), GotoNextSource(), GotoNextSourceWithData(), GotoPreviousSource(), GotoPreviousSourceWithData(), IncrementTimestamp(), IncrementTimestampDefault(), InternalCreate(), IsActive(), JoinMulticastGroup(), LeaveMulticastGroup(), ProcessPolledData(), RTPSession(), SendPacket(), SendPacketEx(), SendRawData(), SendRTCPAPPPacket(), SetDefaultMark(), SetDefaultPayloadType(), SetDefaultTimestampIncrement(), SetEMailInterval(), SetLocalEMail(), SetLocalLocation(), SetLocalName(), SetLocalNote(), SetLocalPhone(), SetLocalTool(), SetLocationInterval(), SetMaximumPacketSize(), SetNameInterval(), SetNoteInterval(), SetPhoneInterval(), SetPreTransmissionDelay(), SetReceiveMode(), SetSessionBandwidth(), SetTimestampUnit(), SetToolInterval(), and SupportsMulticasting().
|
private |
Definition at line 551 of file rtpsession.h.
Referenced by GetRandomNumberGenerator(), and ~RTPSession().
|
private |
Definition at line 555 of file rtpsession.h.
Referenced by BYEDestroy(), Create(), Destroy(), and InternalCreate().
|
private |
Definition at line 569 of file rtpsession.h.
Referenced by ProcessPolledData(), and RTPSession().
|
private |
Definition at line 569 of file rtpsession.h.
Referenced by RTPSession(), SendRTCPData(), and SendRTPData().
|
private |
Definition at line 559 of file rtpsession.h.
Referenced by Create(), InternalCreate(), SendRTCPAPPPacket(), and SetMaximumPacketSize().
|
private |
Definition at line 564 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 566 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 572 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), GetLocalSSRC(), GetNextSequenceNumber(), IncrementTimestamp(), IncrementTimestampDefault(), InternalCreate(), ProcessPolledData(), SendPacket(), SendPacketEx(), SendRTCPAPPPacket(), SetDefaultMark(), SetDefaultPayloadType(), SetDefaultTimestampIncrement(), and SetMaximumPacketSize().
|
private |
Definition at line 574 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), InternalCreate(), ProcessPolledData(), SendRTCPAPPPacket(), SetEMailInterval(), SetLocalEMail(), SetLocalLocation(), SetLocalName(), SetLocalNote(), SetLocalPhone(), SetLocalTool(), SetLocationInterval(), SetMaximumPacketSize(), SetNameInterval(), SetNoteInterval(), SetPhoneInterval(), SetPreTransmissionDelay(), SetTimestampUnit(), and SetToolInterval().
|
private |
Definition at line 573 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), GetRTCPDelay(), InternalCreate(), qrtplib::RTPSessionSources::OnBYEPacket(), qrtplib::RTPSessionSources::OnRTCPCompoundPacket(), qrtplib::RTPSessionSources::OnTimeout(), ProcessPolledData(), and SetSessionBandwidth().
|
private |
Definition at line 550 of file rtpsession.h.
Referenced by ~RTPSession().
|
private |
Definition at line 553 of file rtpsession.h.
Referenced by AddDestination(), AddToAcceptList(), AddToIgnoreList(), BYEDestroy(), ClearAcceptList(), ClearDestinations(), ClearIgnoreList(), Create(), DeleteDestination(), DeleteFromAcceptList(), DeleteFromIgnoreList(), DeleteTransmissionInfo(), Destroy(), GetTransmissionInfo(), InternalCreate(), JoinMulticastGroup(), LeaveMulticastGroup(), ProcessPolledData(), SendRawData(), SendRTCPData(), SendRTPData(), SetMaximumPacketSize(), SetReceiveMode(), and SupportsMulticasting().
|
private |
Definition at line 562 of file rtpsession.h.
Referenced by InternalCreate(), and ProcessPolledData().
|
private |
Definition at line 567 of file rtpsession.h.
Referenced by BYEDestroy(), Create(), ProcessPolledData(), SendPacket(), SendPacketEx(), and SendRTCPAPPPacket().
|
private |
Definition at line 560 of file rtpsession.h.
Referenced by InternalCreate(), and SetSessionBandwidth().
|
private |
Definition at line 571 of file rtpsession.h.
Referenced by BYEDestroy(), Destroy(), GetCurrentSourceInfo(), GetNextPacket(), GetSourceInfo(), GotoFirstSource(), GotoFirstSourceWithData(), GotoNextSource(), GotoNextSourceWithData(), GotoPreviousSource(), GotoPreviousSourceWithData(), InternalCreate(), ProcessPolledData(), SendPacket(), and SendPacketEx().
|
private |
Definition at line 558 of file rtpsession.h.
Referenced by BYEDestroy(), Create(), and ProcessPolledData().
|
private |
Definition at line 556 of file rtpsession.h.
Referenced by Create(), and GetRTCPDelay().