![]() |
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 <rtpsources.h>
Inheritance diagram for qrtplib::RTPSources:
Collaboration diagram for qrtplib::RTPSources:Public Types | |
| enum | ProbationType { NoProbation, ProbationDiscard, ProbationStore } |
Public Member Functions | |
| RTPSources () | |
| virtual | ~RTPSources () |
| void | Clear () |
| int | CreateOwnSSRC (uint32_t ssrc) |
| int | DeleteOwnSSRC () |
| void | SentRTPPacket () |
| int | ProcessRawPacket (RTPRawPacket *rawpack, RTPTransmitter *trans, bool acceptownpackets) |
| int | ProcessRawPacket (RTPRawPacket *rawpack, RTPTransmitter *trans[], int numtrans, bool acceptownpackets) |
| int | ProcessRTPPacket (RTPPacket *rtppack, const RTPTime &receivetime, const RTPAddress *senderaddress, bool *stored) |
| int | ProcessRTCPCompoundPacket (RTCPCompoundPacket *rtcpcomppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | ProcessRTCPSenderInfo (uint32_t ssrc, const RTPNTPTime &ntptime, uint32_t rtptime, uint32_t packetcount, uint32_t octetcount, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | ProcessRTCPReportBlock (uint32_t ssrc, uint8_t fractionlost, int32_t lostpackets, uint32_t exthighseqnr, uint32_t jitter, uint32_t lsr, uint32_t dlsr, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | ProcessSDESNormalItem (uint32_t ssrc, RTCPSDESPacket::ItemType t, std::size_t itemlength, const void *itemdata, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | ProcessSDESPrivateItem (uint32_t ssrc, std::size_t prefixlen, const void *prefixdata, std::size_t valuelen, const void *valuedata, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | ProcessBYE (uint32_t ssrc, std::size_t reasonlength, const void *reasondata, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| int | UpdateReceiveTime (uint32_t ssrc, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| bool | GotoFirstSource () |
| bool | GotoNextSource () |
| bool | GotoPreviousSource () |
| bool | GotoFirstSourceWithData () |
| bool | GotoNextSourceWithData () |
| bool | GotoPreviousSourceWithData () |
| RTPSourceData * | GetCurrentSourceInfo () |
| RTPSourceData * | GetSourceInfo (uint32_t ssrc) |
| RTPPacket * | GetNextPacket () |
| bool | GotEntry (uint32_t ssrc) |
| RTPSourceData * | GetOwnSourceInfo () |
| void | Timeout (const RTPTime &curtime, const RTPTime &timeoutdelay) |
| void | SenderTimeout (const RTPTime &curtime, const RTPTime &timeoutdelay) |
| void | BYETimeout (const RTPTime &curtime, const RTPTime &timeoutdelay) |
| void | NoteTimeout (const RTPTime &curtime, const RTPTime &timeoutdelay) |
| void | MultipleTimeouts (const RTPTime &curtime, const RTPTime &sendertimeout, const RTPTime &byetimeout, const RTPTime &generaltimeout, const RTPTime ¬etimeout) |
| int | GetSenderCount () const |
| int | GetTotalCount () const |
| int | GetActiveMemberCount () const |
Protected Member Functions | |
| 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 | OnBYEPacket (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 | 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 | OnValidatedRTPPacket (RTPSourceData *srcdat, RTPPacket *rtppack, bool isonprobation, bool *ispackethandled) |
Private Member Functions | |
| void | ClearSourceList () |
| int | ObtainSourceDataInstance (uint32_t ssrc, RTPInternalSourceData **srcdat, bool *created) |
| int | GetRTCPSourceData (uint32_t ssrc, const RTPAddress *senderaddress, RTPInternalSourceData **srcdat, bool *newsource) |
| bool | CheckCollision (RTPInternalSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp) |
Private Attributes | |
| RTPKeyHashTable< const uint32_t, RTPInternalSourceData *, RTPSources_GetHashIndex, RTPSOURCES_HASHSIZE > | sourcelist |
| int | sendercount |
| int | totalcount |
| int | activecount |
| RTPInternalSourceData * | owndata |
Friends | |
| class | RTPInternalSourceData |
Represents a table in which information about the participating sources is kept. Represents a table in which information about the participating sources is kept. The class has member functions to process RTP and RTCP data and to iterate over the participants. Note that a NULL address is used to identify packets from our own session. The class also provides some overridable functions which can be used to catch certain events (new SSRC, SSRC collision, ...).
Definition at line 78 of file rtpsources.h.
Type of probation to use for new sources.
Definition at line 82 of file rtpsources.h.
| qrtplib::RTPSources::RTPSources | ( | ) |
In the constructor you can select the probation type you'd like to use and also a memory manager.
Definition at line 51 of file rtpsources.cpp.
References activecount, owndata, sendercount, and totalcount.
|
virtual |
Definition at line 59 of file rtpsources.cpp.
References Clear().
Here is the call graph for this function:Assuming that the current time is curtime, remove the members who sent a BYE packet more than the time interval timeoutdelay ago.
Definition at line 960 of file rtpsources.cpp.
References activecount, qrtplib::RTPSourceData::GetBYETime(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), OnBYETimeout(), OnRemoveSource(), owndata, qrtplib::RTPSourceData::ReceivedBYE(), sendercount, sourcelist, and totalcount.
Here is the call graph for this function:
|
private |
Definition at line 1168 of file rtpsources.cpp.
References qrtplib::RTPSourceData::GetRTCPDataAddress(), qrtplib::RTPSourceData::GetRTPDataAddress(), qrtplib::RTPAddress::IsFromSameHost(), qrtplib::RTPSourceData::IsRTCPAddressSet(), qrtplib::RTPSourceData::IsRTPAddressSet(), qrtplib::RTPAddress::IsSameAddress(), OnSSRCCollision(), qrtplib::RTPInternalSourceData::SetRTCPDataAddress(), and qrtplib::RTPInternalSourceData::SetRTPDataAddress().
Referenced by GetRTCPSourceData(), and ProcessRTPPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| void qrtplib::RTPSources::Clear | ( | ) |
Clears the source table.
Definition at line 64 of file rtpsources.cpp.
References ClearSourceList().
Referenced by qrtplib::RTPSession::BYEDestroy(), qrtplib::RTPSession::Destroy(), qrtplib::RTPSession::InternalCreate(), and ~RTPSources().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 69 of file rtpsources.cpp.
References activecount, owndata, sendercount, sourcelist, and totalcount.
Referenced by Clear().
Here is the caller graph for this function:| int qrtplib::RTPSources::CreateOwnSSRC | ( | uint32_t | ssrc | ) |
Creates an entry for our own SSRC identifier.
Definition at line 87 of file rtpsources.cpp.
References activecount, ERR_RTP_SOURCES_ALREADYHAVEOWNSSRC, ERR_RTP_SOURCES_SSRCEXISTS, GotEntry(), ObtainSourceDataInstance(), OnNewSource(), owndata, qrtplib::RTPInternalSourceData::SetOwnSSRC(), qrtplib::RTPInternalSourceData::SetRTCPDataAddress(), and qrtplib::RTPInternalSourceData::SetRTPDataAddress().
Referenced by qrtplib::RTPSession::InternalCreate(), and qrtplib::RTPSession::ProcessPolledData().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::DeleteOwnSSRC | ( | ) |
Deletes the entry for our own SSRC identifier.
Definition at line 114 of file rtpsources.cpp.
References activecount, ERR_RTP_SOURCES_DONTHAVEOWNSSRC, qrtplib::RTPSourceData::GetSSRC(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), OnRemoveSource(), owndata, sendercount, sourcelist, and totalcount.
Referenced by qrtplib::RTPSession::ProcessPolledData().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Returns the number of members which have been validated and which haven't sent a BYE packet yet.
Definition at line 287 of file rtpsources.h.
Referenced by qrtplib::RTCPScheduler::ActiveMemberDecrease(), qrtplib::RTCPScheduler::CalculateDeterministicInterval(), qrtplib::RTCPScheduler::GetTransmissionDelay(), qrtplib::RTCPScheduler::IsTime(), qrtplib::RTCPScheduler::PerformReverseReconsideration(), and qrtplib::RTCPScheduler::ScheduleBYEPacket().
Here is the caller graph for this function:| RTPSourceData * qrtplib::RTPSources::GetCurrentSourceInfo | ( | ) |
Returns the RTPSourceData instance for the currently selected participant.
Definition at line 609 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTCPPacketBuilder::ClearAllSourceFlags(), qrtplib::RTCPPacketBuilder::FillInReportBlocks(), and qrtplib::RTPSession::GetCurrentSourceInfo().
Here is the caller graph for this function:| RTPPacket * qrtplib::RTPSources::GetNextPacket | ( | ) |
Extracts the next packet from the received packets queue of the current participant.
Definition at line 630 of file rtpsources.cpp.
References qrtplib::RTPSourceData::GetNextPacket(), and sourcelist.
Referenced by qrtplib::RTPSession::GetNextPacket().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
If present, it returns the RTPSourceData instance of the entry which was created by CreateOwnSSRC.
Definition at line 243 of file rtpsources.h.
Referenced by qrtplib::RTCPPacketBuilder::BuildBYEPacket(), qrtplib::RTCPPacketBuilder::BuildNextPacket(), qrtplib::RTCPScheduler::CalculateNextRTCPTime(), and qrtplib::RTCPScheduler::IsTime().
Here is the caller graph for this function:
|
private |
Definition at line 827 of file rtpsources.cpp.
References CheckCollision(), ObtainSourceDataInstance(), and qrtplib::RTPInternalSourceData::SetRTCPDataAddress().
Referenced by ProcessBYE(), ProcessRTCPReportBlock(), ProcessRTCPSenderInfo(), ProcessSDESNormalItem(), ProcessSDESPrivateItem(), and UpdateReceiveTime().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Returns the number of participants which are marked as a sender.
Definition at line 275 of file rtpsources.h.
Referenced by qrtplib::RTCPScheduler::CalculateDeterministicInterval().
Here is the caller graph for this function:| RTPSourceData * qrtplib::RTPSources::GetSourceInfo | ( | uint32_t | ssrc | ) |
Returns the RTPSourceData instance for the participant identified by ssrc, or NULL if no such entry exists.
Definition at line 616 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTPSession::GetSourceInfo().
Here is the caller graph for this function:
|
inline |
Returns the total number of entries in the source table.
Definition at line 281 of file rtpsources.h.
Referenced by qrtplib::RTCPPacketBuilder::BuildNextPacket().
Here is the caller graph for this function:| bool qrtplib::RTPSources::GotEntry | ( | uint32_t | ssrc | ) |
Returns true if an entry for participant ssrc exists and false otherwise.
Definition at line 625 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTPPacketBuilder::CreateNewSSRC(), and CreateOwnSSRC().
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 528 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTCPPacketBuilder::ClearAllSourceFlags(), qrtplib::RTCPPacketBuilder::FillInReportBlocks(), and qrtplib::RTPSession::GotoFirstSource().
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 552 of file rtpsources.cpp.
References qrtplib::RTPSourceData::HasData(), and sourcelist.
Referenced by qrtplib::RTPSession::GotoFirstSourceWithData().
Here is the call graph for this function:
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 536 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTCPPacketBuilder::ClearAllSourceFlags(), qrtplib::RTCPPacketBuilder::FillInReportBlocks(), and qrtplib::RTPSession::GotoNextSource().
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 571 of file rtpsources.cpp.
References qrtplib::RTPSourceData::HasData(), and sourcelist.
Referenced by qrtplib::RTPSession::GotoNextSourceWithData().
Here is the call graph for this function:
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 544 of file rtpsources.cpp.
References sourcelist.
Referenced by qrtplib::RTPSession::GotoPreviousSource().
Here is the caller graph for this function:| bool qrtplib::RTPSources::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 590 of file rtpsources.cpp.
References qrtplib::RTPSourceData::HasData(), and sourcelist.
Referenced by qrtplib::RTPSession::GotoPreviousSourceWithData().
Here is the call graph for this function:
Here is the caller graph for this function:| void qrtplib::RTPSources::MultipleTimeouts | ( | const RTPTime & | curtime, |
| const RTPTime & | sendertimeout, | ||
| const RTPTime & | byetimeout, | ||
| const RTPTime & | generaltimeout, | ||
| const RTPTime & | notetimeout | ||
| ) |
Combines the functions SenderTimeout, BYETimeout, Timeout and NoteTimeout. Combines the functions SenderTimeout, BYETimeout, Timeout and NoteTimeout. This is more efficient than calling all four functions since only one iteration is needed in this function.
Definition at line 1055 of file rtpsources.cpp.
References activecount, qrtplib::RTPInternalSourceData::ClearNote(), qrtplib::RTPInternalSourceData::ClearSenderFlag(), qrtplib::RTPSourceData::GetBYETime(), qrtplib::RTPSourceData::INF_GetLastMessageTime(), qrtplib::RTPSourceData::INF_GetLastRTPPacketTime(), qrtplib::RTPSourceData::INF_GetLastSDESNoteTime(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), OnBYETimeout(), OnNoteTimeout(), OnRemoveSource(), OnTimeout(), owndata, qrtplib::RTPSourceData::ReceivedBYE(), qrtplib::RTPSourceData::SDES_GetNote(), sendercount, sourcelist, and totalcount.
Referenced by qrtplib::RTPSession::ProcessPolledData().
Here is the call graph for this function:
Here is the caller graph for this function:Assuming that the current time is curtime, clear the SDES NOTE items which haven't been updated during the previous time interval timeoutdelay.
Definition at line 1015 of file rtpsources.cpp.
References activecount, qrtplib::RTPInternalSourceData::ClearNote(), qrtplib::RTPSourceData::INF_GetLastSDESNoteTime(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), OnNoteTimeout(), qrtplib::RTPSourceData::SDES_GetNote(), sendercount, sourcelist, and totalcount.
Here is the call graph for this function:
|
private |
Definition at line 802 of file rtpsources.cpp.
References RTPInternalSourceData, sourcelist, and totalcount.
Referenced by CreateOwnSSRC(), GetRTCPSourceData(), and ProcessRTPPacket().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an RTCP APP packet apppacket has been received at time receivetime from address senderaddress.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 415 of file rtpsources.h.
Referenced by ProcessRTCPCompoundPacket().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when a BYE packet has been processed for source srcdat.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 398 of file rtpsources.h.
Referenced by ProcessBYE().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when participant srcdat is timed after having sent a BYE packet.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 395 of file rtpsources.h.
Referenced by BYETimeout(), and MultipleTimeouts().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when another CNAME was received than the one already present for source srcdat.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 383 of file rtpsources.h.
Referenced by ProcessSDESNormalItem().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when a new entry srcdat is added to the source table.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 386 of file rtpsources.h.
Referenced by CreateOwnSSRC(), ProcessBYE(), ProcessRTCPReportBlock(), ProcessRTCPSenderInfo(), ProcessRTPPacket(), ProcessSDESNormalItem(), ProcessSDESPrivateItem(), and UpdateReceiveTime().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when the SDES NOTE item for source srcdat has been timed out.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 424 of file rtpsources.h.
Referenced by MultipleTimeouts(), and NoteTimeout().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when the entry srcdat is about to be deleted from the source table.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 389 of file rtpsources.h.
Referenced by BYETimeout(), DeleteOwnSSRC(), MultipleTimeouts(), and Timeout().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an RTCP compound packet is about to be processed.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 377 of file rtpsources.h.
Referenced by ProcessRTCPCompoundPacket().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an RTCP receiver report has been processed for this source.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 404 of file rtpsources.h.
Referenced by ProcessRTCPReportBlock().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when a specific SDES item was received for this source.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 407 of file rtpsources.h.
Referenced by ProcessSDESNormalItem().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when a specific SDES item of 'private' type was received for this source.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 411 of file rtpsources.h.
Referenced by ProcessSDESPrivateItem().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an RTCP sender report has been processed for this source.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 401 of file rtpsources.h.
Referenced by ProcessRTCPSenderInfo().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an RTP packet is about to be processed.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 374 of file rtpsources.h.
Referenced by ProcessRTPPacket().
Here is the caller graph for this function:
|
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.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 380 of file rtpsources.h.
Referenced by CheckCollision().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when participant srcdat is timed out.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 392 of file rtpsources.h.
Referenced by MultipleTimeouts(), and Timeout().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an unknown packet format for a known packet type was detected.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 421 of file rtpsources.h.
Referenced by ProcessRTCPCompoundPacket().
Here is the caller graph for this function:
|
inlineprotectedvirtual |
Is called when an unknown RTCP packet type was detected.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 418 of file rtpsources.h.
Referenced by ProcessRTCPCompoundPacket().
Here is the caller graph for this function:
|
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.
Reimplemented in qrtplib::RTPSessionSources.
Definition at line 427 of file rtpsources.h.
Referenced by qrtplib::RTPInternalSourceData::ProcessRTPPacket().
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessBYE | ( | uint32_t | ssrc, |
| std::size_t | reasonlength, | ||
| const void * | reasondata, | ||
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Processes the BYE message for SSRC ssrc. Processes the BYE message for SSRC ssrc. The information was received at time receivetime from address senderaddress. The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 773 of file rtpsources.cpp.
References activecount, GetRTCPSourceData(), qrtplib::RTPSourceData::IsActive(), OnBYEPacket(), OnNewSource(), owndata, and qrtplib::RTPInternalSourceData::ProcessBYEPacket().
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessRawPacket | ( | RTPRawPacket * | rawpack, |
| RTPTransmitter * | trans, | ||
| bool | acceptownpackets | ||
| ) |
Processes a raw packet rawpack. Processes a raw packet rawpack. The instance trans will be used to check if this packet is one of our own packets. The flag acceptownpackets indicates whether own packets should be accepted or ignored.
Definition at line 149 of file rtpsources.cpp.
Referenced by qrtplib::RTPSession::ProcessPolledData().
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessRawPacket | ( | RTPRawPacket * | rawpack, |
| RTPTransmitter * | trans[], | ||
| int | numtrans, | ||
| bool | acceptownpackets | ||
| ) |
Processes a raw packet rawpack. Processes a raw packet rawpack. Every transmitter in the array trans of length numtrans is used to check if the packet is from our own session. The flag acceptownpackets indicates whether own packets should be accepted or ignored.
Definition at line 162 of file rtpsources.cpp.
References ERR_RTP_PACKET_INVALIDPACKET, ERR_RTP_RTCPCOMPOUND_INVALIDPACKET, qrtplib::RTCPCompoundPacket::GetCreationError(), qrtplib::RTPPacket::GetCreationError(), qrtplib::RTPRawPacket::GetReceiveTime(), qrtplib::RTPRawPacket::GetSenderAddress(), i, qrtplib::RTPRawPacket::IsRTP(), ProcessRTCPCompoundPacket(), and ProcessRTPPacket().
Here is the call graph for this function:| int qrtplib::RTPSources::ProcessRTCPCompoundPacket | ( | RTCPCompoundPacket * | rtcpcomppack, |
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Processes the RTCP compound packet rtcpcomppack which was received at time receivetime from senderaddress. Processes the RTCP compound packet rtcpcomppack which was received at time receivetime from senderaddress. The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 362 of file rtpsources.cpp.
References qrtplib::RTCPPacket::APP, qrtplib::RTCPPacket::BYE, qrtplib::RTCPSDESPacket::GetChunkSSRC(), qrtplib::RTCPRRPacket::GetDLSR(), qrtplib::RTCPSRPacket::GetDLSR(), qrtplib::RTCPRRPacket::GetExtendedHighestSequenceNumber(), qrtplib::RTCPSRPacket::GetExtendedHighestSequenceNumber(), qrtplib::RTCPRRPacket::GetFractionLost(), qrtplib::RTCPSRPacket::GetFractionLost(), qrtplib::RTCPSDESPacket::GetItemData(), qrtplib::RTCPSDESPacket::GetItemLength(), qrtplib::RTCPSDESPacket::GetItemType(), qrtplib::RTCPRRPacket::GetJitter(), qrtplib::RTCPSRPacket::GetJitter(), qrtplib::RTCPRRPacket::GetLostPacketCount(), qrtplib::RTCPSRPacket::GetLostPacketCount(), qrtplib::RTCPRRPacket::GetLSR(), qrtplib::RTCPSRPacket::GetLSR(), qrtplib::RTCPCompoundPacket::GetNextPacket(), qrtplib::RTCPSRPacket::GetNTPTimestamp(), qrtplib::RTCPPacket::GetPacketType(), qrtplib::RTCPSDESPacket::GetPRIVPrefixData(), qrtplib::RTCPSDESPacket::GetPRIVPrefixLength(), qrtplib::RTCPSDESPacket::GetPRIVValueData(), qrtplib::RTCPSDESPacket::GetPRIVValueLength(), qrtplib::RTCPBYEPacket::GetReasonData(), qrtplib::RTCPBYEPacket::GetReasonLength(), qrtplib::RTCPRRPacket::GetReceptionReportCount(), qrtplib::RTCPSRPacket::GetReceptionReportCount(), qrtplib::RTCPSRPacket::GetRTPTimestamp(), qrtplib::RTCPSRPacket::GetSenderOctetCount(), qrtplib::RTCPSRPacket::GetSenderPacketCount(), qrtplib::RTCPRRPacket::GetSenderSSRC(), qrtplib::RTCPSRPacket::GetSenderSSRC(), qrtplib::RTCPBYEPacket::GetSSRC(), qrtplib::RTCPRRPacket::GetSSRC(), qrtplib::RTCPSRPacket::GetSSRC(), qrtplib::RTPSourceData::GetSSRC(), qrtplib::RTCPBYEPacket::GetSSRCCount(), qrtplib::RTCPSDESPacket::GotoFirstChunk(), qrtplib::RTCPSDESPacket::GotoFirstItem(), qrtplib::RTCPCompoundPacket::GotoFirstPacket(), qrtplib::RTCPSDESPacket::GotoNextChunk(), qrtplib::RTCPSDESPacket::GotoNextItem(), i, qrtplib::RTCPPacket::IsKnownFormat(), OnAPPPacket(), OnRTCPCompoundPacket(), OnUnknownPacketFormat(), OnUnknownPacketType(), owndata, qrtplib::RTCPSDESPacket::PRIV, ProcessBYE(), ProcessRTCPReportBlock(), ProcessRTCPSenderInfo(), ProcessSDESNormalItem(), ProcessSDESPrivateItem(), qrtplib::RTCPPacket::RR, qrtplib::RTCPPacket::SDES, qrtplib::RTCPPacket::SR, qrtplib::RTCPPacket::Unknown, and UpdateReceiveTime().
Referenced by ProcessRawPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessRTCPReportBlock | ( | uint32_t | ssrc, |
| uint8_t | fractionlost, | ||
| int32_t | lostpackets, | ||
| uint32_t | exthighseqnr, | ||
| uint32_t | jitter, | ||
| uint32_t | lsr, | ||
| uint32_t | dlsr, | ||
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Processes the report block information which was sent by participant ssrc into the source table. Processes the report block information which was sent by participant ssrc into the source table. The information was received at time receivetime from address senderaddress The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 664 of file rtpsources.cpp.
References GetRTCPSourceData(), OnNewSource(), OnRTCPReceiverReport(), and qrtplib::RTPInternalSourceData::ProcessReportBlock().
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessRTCPSenderInfo | ( | uint32_t | ssrc, |
| const RTPNTPTime & | ntptime, | ||
| uint32_t | rtptime, | ||
| uint32_t | packetcount, | ||
| uint32_t | octetcount, | ||
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Process the sender information of SSRC ssrc into the source table. Process the sender information of SSRC ssrc into the source table. The information was received at time receivetime from address senderaddress. The senderaddress} parameter must be NULL if the packet was sent by the local participant.
Definition at line 640 of file rtpsources.cpp.
References GetRTCPSourceData(), OnNewSource(), OnRTCPSenderReport(), and qrtplib::RTPInternalSourceData::ProcessSenderInfo().
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessRTPPacket | ( | RTPPacket * | rtppack, |
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress, | ||
| bool * | stored | ||
| ) |
Processes an RTPPacket instance rtppack which was received at time receivetime and which originated from senderaddres. Processes an RTPPacket instance rtppack which was received at time receivetime and which originated from senderaddres. The senderaddress parameter must be NULL if the packet was sent by the local participant. The flag stored indicates whether the packet was stored in the table or not. If so, the rtppack instance may not be deleted.
Definition at line 278 of file rtpsources.cpp.
References activecount, CheckCollision(), qrtplib::RTPPacket::GetCSRC(), qrtplib::RTPPacket::GetCSRCCount(), qrtplib::RTPPacket::GetSSRC(), i, qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), qrtplib::RTPSourceData::IsValidated(), ObtainSourceDataInstance(), OnNewSource(), OnRTPPacket(), qrtplib::RTPInternalSourceData::ProcessRTPPacket(), RTP_MAXCSRCS, sendercount, qrtplib::RTPInternalSourceData::SetCSRC(), and qrtplib::RTPInternalSourceData::SetRTPDataAddress().
Referenced by ProcessRawPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessSDESNormalItem | ( | uint32_t | ssrc, |
| RTCPSDESPacket::ItemType | t, | ||
| std::size_t | itemlength, | ||
| const void * | itemdata, | ||
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Processes the non-private SDES item from source ssrc into the source table. Processes the non-private SDES item from source ssrc into the source table. The information was received at time receivetime from address senderaddress. The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 688 of file rtpsources.cpp.
References activecount, qrtplib::RTCPSDESPacket::CNAME, qrtplib::RTCPSDESPacket::EMAIL, ERR_RTP_SOURCES_ILLEGALSDESTYPE, GetRTCPSourceData(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTCPSDESPacket::LOC, qrtplib::RTCPSDESPacket::NAME, qrtplib::RTCPSDESPacket::NOTE, OnCNAMECollision(), OnNewSource(), OnRTCPSDESItem(), qrtplib::RTCPSDESPacket::PHONE, qrtplib::RTPInternalSourceData::ProcessSDESItem(), RTCP_SDES_ID_CNAME, RTCP_SDES_ID_EMAIL, RTCP_SDES_ID_LOCATION, RTCP_SDES_ID_NAME, RTCP_SDES_ID_NOTE, RTCP_SDES_ID_PHONE, RTCP_SDES_ID_TOOL, and qrtplib::RTCPSDESPacket::TOOL.
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:| int qrtplib::RTPSources::ProcessSDESPrivateItem | ( | uint32_t | ssrc, |
| std::size_t | prefixlen, | ||
| const void * | prefixdata, | ||
| std::size_t | valuelen, | ||
| const void * | valuedata, | ||
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
Processes the SDES private item from source ssrc into the source table. Processes the SDES private item from source ssrc into the source table. The information was received at time receivetime from address senderaddress. The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 748 of file rtpsources.cpp.
References GetRTCPSourceData(), OnNewSource(), OnRTCPSDESPrivateItem(), and qrtplib::RTPInternalSourceData::ProcessPrivateSDESItem().
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:Assuming that the current time is curtime, remove the sender flag for senders from whom we haven't received any RTP packets during the previous time interval timeoutdelay.
Definition at line 923 of file rtpsources.cpp.
References activecount, qrtplib::RTPInternalSourceData::ClearSenderFlag(), qrtplib::RTPSourceData::INF_GetLastRTPPacketTime(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), sendercount, sourcelist, and totalcount.
Here is the call graph for this function:| void qrtplib::RTPSources::SentRTPPacket | ( | ) |
This function should be called if our own session has sent an RTP packet. This function should be called if our own session has sent an RTP packet. For our own SSRC entry, the sender flag is updated based upon outgoing packets instead of incoming packets.
Definition at line 137 of file rtpsources.cpp.
References qrtplib::RTPSourceData::IsSender(), owndata, sendercount, and qrtplib::RTPInternalSourceData::SentRTPPacket().
Referenced by qrtplib::RTPSession::SendPacket(), and qrtplib::RTPSession::SendPacketEx().
Here is the call graph for this function:
Here is the caller graph for this function:Assuming that the current time is curtime, time out the members from whom we haven't heard during the previous time interval timeoutdelay.
Definition at line 877 of file rtpsources.cpp.
References activecount, qrtplib::RTPSourceData::INF_GetLastMessageTime(), qrtplib::RTPSourceData::IsActive(), qrtplib::RTPSourceData::IsSender(), OnRemoveSource(), OnTimeout(), owndata, sendercount, sourcelist, and totalcount.
Here is the call graph for this function:| int qrtplib::RTPSources::UpdateReceiveTime | ( | uint32_t | ssrc, |
| const RTPTime & | receivetime, | ||
| const RTPAddress * | senderaddress | ||
| ) |
If we heard from source ssrc, but no actual data was added to the source table (for example, if no report block was meant for us), this function can e used to indicate that something was received from this source. If we heard from source ssrc, but no actual data was added to the source table (for example, if no report block was meant for us), this function can e used to indicate that something was received from this source. This will prevent a premature timeout for this participant. The message was received at time receivetime from address senderaddress. The senderaddress parameter must be NULL if the packet was sent by the local participant.
Definition at line 855 of file rtpsources.cpp.
References GetRTCPSourceData(), OnNewSource(), and qrtplib::RTPInternalSourceData::UpdateMessageTime().
Referenced by ProcessRTCPCompoundPacket().
Here is the call graph for this function:
Here is the caller graph for this function:
|
friend |
Definition at line 370 of file rtpsources.h.
Referenced by ObtainSourceDataInstance().
|
private |
Definition at line 366 of file rtpsources.h.
Referenced by BYETimeout(), ClearSourceList(), CreateOwnSSRC(), DeleteOwnSSRC(), MultipleTimeouts(), NoteTimeout(), ProcessBYE(), ProcessRTPPacket(), ProcessSDESNormalItem(), RTPSources(), SenderTimeout(), and Timeout().
|
private |
Definition at line 368 of file rtpsources.h.
Referenced by BYETimeout(), ClearSourceList(), CreateOwnSSRC(), DeleteOwnSSRC(), MultipleTimeouts(), ProcessBYE(), ProcessRTCPCompoundPacket(), RTPSources(), SentRTPPacket(), and Timeout().
|
private |
Definition at line 364 of file rtpsources.h.
Referenced by BYETimeout(), ClearSourceList(), DeleteOwnSSRC(), MultipleTimeouts(), NoteTimeout(), ProcessRTPPacket(), RTPSources(), SenderTimeout(), SentRTPPacket(), and Timeout().
|
private |
Definition at line 362 of file rtpsources.h.
Referenced by BYETimeout(), ClearSourceList(), DeleteOwnSSRC(), GetCurrentSourceInfo(), GetNextPacket(), GetSourceInfo(), GotEntry(), GotoFirstSource(), GotoFirstSourceWithData(), GotoNextSource(), GotoNextSourceWithData(), GotoPreviousSource(), GotoPreviousSourceWithData(), MultipleTimeouts(), NoteTimeout(), ObtainSourceDataInstance(), SenderTimeout(), and Timeout().
|
private |
Definition at line 365 of file rtpsources.h.
Referenced by BYETimeout(), ClearSourceList(), DeleteOwnSSRC(), MultipleTimeouts(), NoteTimeout(), ObtainSourceDataInstance(), RTPSources(), SenderTimeout(), and Timeout().
1.8.13