Index: webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
index fb1f9b2503768b1110cb49944f041462483998b4..abd822a4b9758edf9e559b64c22dc523e68c96af 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
@@ -387,7 +387,6 @@ RTCPReceiver::IncomingRTCPPacket(RTCPPacketInformation& rtcpPacketInformation, |
return 0; |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void |
RTCPReceiver::HandleSenderReceiverReport(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) |
@@ -463,7 +462,6 @@ RTCPReceiver::HandleSenderReceiverReport(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleReportBlock( |
const RTCPUtility::RTCPPacket& rtcpPacket, |
RTCPPacketInformation& rtcpPacketInformation, |
@@ -775,7 +773,6 @@ int32_t RTCPReceiver::BoundingSet(bool &tmmbrOwner, TMMBRSet* boundingSetRec) { |
return receiveInfo->TmmbnBoundingSet.lengthOfSet(); |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleSDES(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
RTCPUtility::RTCPPacketTypes pktType = rtcpParser.Iterate(); |
@@ -786,7 +783,6 @@ void RTCPReceiver::HandleSDES(RTCPUtility::RTCPParserV2& rtcpParser, |
rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpSdes; |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleSDESChunk(RTCPUtility::RTCPParserV2& rtcpParser) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
RTCPCnameInformation* cnameInfo = |
@@ -804,7 +800,6 @@ void RTCPReceiver::HandleSDESChunk(RTCPUtility::RTCPParserV2& rtcpParser) { |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleNACK(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -828,7 +823,6 @@ void RTCPReceiver::HandleNACK(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void |
RTCPReceiver::HandleNACKItem(const RTCPUtility::RTCPPacket& rtcpPacket, |
RTCPPacketInformation& rtcpPacketInformation) { |
@@ -848,12 +842,10 @@ RTCPReceiver::HandleNACKItem(const RTCPUtility::RTCPPacket& rtcpPacket, |
rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpNack; |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleBYE(RTCPUtility::RTCPParserV2& rtcpParser) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
// clear our lists |
- CriticalSectionScoped lock(_criticalSectionRTCPReceiver); |
ReportBlockMap::iterator it = _receivedReportBlockMap.begin(); |
for (; it != _receivedReportBlockMap.end(); ++it) { |
ReportBlockInfoMap* info_map = &(it->second); |
@@ -964,15 +956,12 @@ void RTCPReceiver::HandleXrDlrrReportBlockItem( |
rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpXrDlrrReportBlock; |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void |
RTCPReceiver::HandleXRVOIPMetric(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) |
{ |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
- CriticalSectionScoped lock(_criticalSectionRTCPReceiver); |
- |
if(rtcpPacket.XRVOIPMetricItem.SSRC == main_ssrc_) |
{ |
// Store VoIP metrics block if it's about me |
@@ -1008,7 +997,6 @@ RTCPReceiver::HandleXRVOIPMetric(RTCPUtility::RTCPParserV2& rtcpParser, |
rtcpParser.Iterate(); |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandlePLI(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1022,7 +1010,6 @@ void RTCPReceiver::HandlePLI(RTCPUtility::RTCPParserV2& rtcpParser, |
rtcpParser.Iterate(); |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleTMMBR(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1059,7 +1046,6 @@ void RTCPReceiver::HandleTMMBR(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleTMMBRItem(RTCPReceiveInformation& receiveInfo, |
const RTCPUtility::RTCPPacket& rtcpPacket, |
RTCPPacketInformation& rtcpPacketInformation, |
@@ -1072,7 +1058,6 @@ void RTCPReceiver::HandleTMMBRItem(RTCPReceiveInformation& receiveInfo, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleTMMBN(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1104,14 +1089,12 @@ void RTCPReceiver::HandleTMMBN(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleSR_REQ(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpSrReq; |
rtcpParser.Iterate(); |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleTMMBNItem(RTCPReceiveInformation& receiveInfo, |
const RTCPUtility::RTCPPacket& rtcpPacket) { |
receiveInfo.TmmbnBoundingSet.AddEntry( |
@@ -1120,7 +1103,6 @@ void RTCPReceiver::HandleTMMBNItem(RTCPReceiveInformation& receiveInfo, |
rtcpPacket.TMMBNItem.SSRC); |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleSLI(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1131,7 +1113,6 @@ void RTCPReceiver::HandleSLI(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleSLIItem(const RTCPUtility::RTCPPacket& rtcpPacket, |
RTCPPacketInformation& rtcpPacketInformation) { |
// in theory there could be multiple slices lost |
@@ -1167,7 +1148,6 @@ RTCPReceiver::HandleRPSI(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandlePsfbApp(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
RTCPUtility::RTCPPacketTypes pktType = rtcpParser.Iterate(); |
@@ -1180,7 +1160,6 @@ void RTCPReceiver::HandlePsfbApp(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleIJ(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1208,7 +1187,6 @@ void RTCPReceiver::HandleREMBItem( |
rtcpPacket.REMBItem.BitRate; |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleFIR(RTCPUtility::RTCPParserV2& rtcpParser, |
RTCPPacketInformation& rtcpPacketInformation) { |
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); |
@@ -1222,7 +1200,6 @@ void RTCPReceiver::HandleFIR(RTCPUtility::RTCPParserV2& rtcpParser, |
} |
} |
-// no need for critsect we have _criticalSectionRTCPReceiver |
void RTCPReceiver::HandleFIRItem(RTCPReceiveInformation* receiveInfo, |
const RTCPUtility::RTCPPacket& rtcpPacket, |
RTCPPacketInformation& rtcpPacketInformation) { |
@@ -1348,11 +1325,13 @@ void RTCPReceiver::TriggerCallbacksFromRTCPPacket( |
// Might trigger a OnReceivedBandwidthEstimateUpdate. |
UpdateTMMBR(); |
} |
- unsigned int local_ssrc; |
+ uint32_t local_ssrc; |
+ std::set<uint32_t> registered_ssrcs; |
{ |
// We don't want to hold this critsect when triggering the callbacks below. |
CriticalSectionScoped lock(_criticalSectionRTCPReceiver); |
local_ssrc = main_ssrc_; |
+ registered_ssrcs = registered_ssrcs_; |
} |
if (!receiver_only_ && |
(rtcpPacketInformation.rtcpPacketTypeFlags & kRtcpSrReq)) { |
@@ -1414,9 +1393,8 @@ void RTCPReceiver::TriggerCallbacksFromRTCPPacket( |
(rtcpPacketInformation.rtcpPacketTypeFlags & kRtcpTransportFeedback)) { |
uint32_t media_source_ssrc = |
rtcpPacketInformation.transport_feedback_->GetMediaSourceSsrc(); |
- if (media_source_ssrc == main_ssrc_ || |
- registered_ssrcs_.find(media_source_ssrc) != |
- registered_ssrcs_.end()) { |
+ if (media_source_ssrc == local_ssrc || |
+ registered_ssrcs.find(media_source_ssrc) != registered_ssrcs.end()) { |
_cbTransportFeedbackObserver->OnTransportFeedback( |
*rtcpPacketInformation.transport_feedback_.get()); |
} |