Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc

Issue 2320703003: Remove handling unused rtcp packets. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 break; 307 break;
308 case RTCPPacketTypes::kXrHeader: 308 case RTCPPacketTypes::kXrHeader:
309 HandleXrHeader(*rtcpParser, rtcpPacketInformation); 309 HandleXrHeader(*rtcpParser, rtcpPacketInformation);
310 break; 310 break;
311 case RTCPPacketTypes::kXrReceiverReferenceTime: 311 case RTCPPacketTypes::kXrReceiverReferenceTime:
312 HandleXrReceiveReferenceTime(*rtcpParser, rtcpPacketInformation); 312 HandleXrReceiveReferenceTime(*rtcpParser, rtcpPacketInformation);
313 break; 313 break;
314 case RTCPPacketTypes::kXrDlrrReportBlock: 314 case RTCPPacketTypes::kXrDlrrReportBlock:
315 HandleXrDlrrReportBlock(*rtcpParser, rtcpPacketInformation); 315 HandleXrDlrrReportBlock(*rtcpParser, rtcpPacketInformation);
316 break; 316 break;
317 case RTCPPacketTypes::kXrVoipMetric:
318 HandleXRVOIPMetric(*rtcpParser, rtcpPacketInformation);
319 break;
320 case RTCPPacketTypes::kBye: 317 case RTCPPacketTypes::kBye:
321 HandleBYE(*rtcpParser); 318 HandleBYE(*rtcpParser);
322 break; 319 break;
323 case RTCPPacketTypes::kRtpfbNack: 320 case RTCPPacketTypes::kRtpfbNack:
324 HandleNACK(*rtcpParser, rtcpPacketInformation); 321 HandleNACK(*rtcpParser, rtcpPacketInformation);
325 break; 322 break;
326 case RTCPPacketTypes::kRtpfbTmmbr: 323 case RTCPPacketTypes::kRtpfbTmmbr:
327 HandleTMMBR(*rtcpParser, rtcpPacketInformation); 324 HandleTMMBR(*rtcpParser, rtcpPacketInformation);
328 break; 325 break;
329 case RTCPPacketTypes::kRtpfbTmmbn: 326 case RTCPPacketTypes::kRtpfbTmmbn:
330 HandleTMMBN(*rtcpParser, rtcpPacketInformation); 327 HandleTMMBN(*rtcpParser, rtcpPacketInformation);
331 break; 328 break;
332 case RTCPPacketTypes::kRtpfbSrReq: 329 case RTCPPacketTypes::kRtpfbSrReq:
333 HandleSR_REQ(*rtcpParser, rtcpPacketInformation); 330 HandleSR_REQ(*rtcpParser, rtcpPacketInformation);
334 break; 331 break;
335 case RTCPPacketTypes::kPsfbPli: 332 case RTCPPacketTypes::kPsfbPli:
336 HandlePLI(*rtcpParser, rtcpPacketInformation); 333 HandlePLI(*rtcpParser, rtcpPacketInformation);
337 break; 334 break;
338 case RTCPPacketTypes::kPsfbSli: 335 case RTCPPacketTypes::kPsfbSli:
339 HandleSLI(*rtcpParser, rtcpPacketInformation); 336 HandleSLI(*rtcpParser, rtcpPacketInformation);
340 break; 337 break;
341 case RTCPPacketTypes::kPsfbRpsi: 338 case RTCPPacketTypes::kPsfbRpsi:
342 HandleRPSI(*rtcpParser, rtcpPacketInformation); 339 HandleRPSI(*rtcpParser, rtcpPacketInformation);
343 break; 340 break;
344 case RTCPPacketTypes::kExtendedIj:
345 HandleIJ(*rtcpParser, rtcpPacketInformation);
346 break;
347 case RTCPPacketTypes::kPsfbFir: 341 case RTCPPacketTypes::kPsfbFir:
348 HandleFIR(*rtcpParser, rtcpPacketInformation); 342 HandleFIR(*rtcpParser, rtcpPacketInformation);
349 break; 343 break;
350 case RTCPPacketTypes::kPsfbApp: 344 case RTCPPacketTypes::kPsfbApp:
351 HandlePsfbApp(*rtcpParser, rtcpPacketInformation); 345 HandlePsfbApp(*rtcpParser, rtcpPacketInformation);
352 break; 346 break;
353 case RTCPPacketTypes::kApp:
354 // generic application messages
355 HandleAPP(*rtcpParser, rtcpPacketInformation);
356 break;
357 case RTCPPacketTypes::kAppItem:
358 // generic application messages
359 HandleAPPItem(*rtcpParser, rtcpPacketInformation);
360 break;
361 case RTCPPacketTypes::kTransportFeedback: 347 case RTCPPacketTypes::kTransportFeedback:
362 HandleTransportFeedback(rtcpParser, &rtcpPacketInformation); 348 HandleTransportFeedback(rtcpParser, &rtcpPacketInformation);
363 break; 349 break;
364 default: 350 default:
365 rtcpParser->Iterate(); 351 rtcpParser->Iterate();
366 break; 352 break;
367 } 353 }
368 pktType = rtcpParser->PacketType(); 354 pktType = rtcpParser->PacketType();
369 } 355 }
370 356
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 888
903 uint32_t delay_rr = packet.XRDLRRReportBlockItem.DelayLastRR; 889 uint32_t delay_rr = packet.XRDLRRReportBlockItem.DelayLastRR;
904 uint32_t now = CompactNtp(NtpTime(*_clock)); 890 uint32_t now = CompactNtp(NtpTime(*_clock));
905 891
906 uint32_t rtt_ntp = now - delay_rr - send_time; 892 uint32_t rtt_ntp = now - delay_rr - send_time;
907 xr_rr_rtt_ms_ = CompactNtpRttToMs(rtt_ntp); 893 xr_rr_rtt_ms_ = CompactNtpRttToMs(rtt_ntp);
908 894
909 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpXrDlrrReportBlock; 895 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpXrDlrrReportBlock;
910 } 896 }
911 897
912 void RTCPReceiver::HandleXRVOIPMetric(
913 RTCPUtility::RTCPParserV2& rtcpParser,
914 RTCPPacketInformation& rtcpPacketInformation) {
915 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
916
917 if (rtcpPacket.XRVOIPMetricItem.SSRC == main_ssrc_) {
918 // Store VoIP metrics block if it's about me
919 // from OriginatorSSRC do we filter it?
920 // rtcpPacket.XR.OriginatorSSRC;
921
922 RTCPVoIPMetric receivedVoIPMetrics;
923 receivedVoIPMetrics.burstDensity = rtcpPacket.XRVOIPMetricItem.burstDensity;
924 receivedVoIPMetrics.burstDuration =
925 rtcpPacket.XRVOIPMetricItem.burstDuration;
926 receivedVoIPMetrics.discardRate = rtcpPacket.XRVOIPMetricItem.discardRate;
927 receivedVoIPMetrics.endSystemDelay =
928 rtcpPacket.XRVOIPMetricItem.endSystemDelay;
929 receivedVoIPMetrics.extRfactor = rtcpPacket.XRVOIPMetricItem.extRfactor;
930 receivedVoIPMetrics.gapDensity = rtcpPacket.XRVOIPMetricItem.gapDensity;
931 receivedVoIPMetrics.gapDuration = rtcpPacket.XRVOIPMetricItem.gapDuration;
932 receivedVoIPMetrics.Gmin = rtcpPacket.XRVOIPMetricItem.Gmin;
933 receivedVoIPMetrics.JBabsMax = rtcpPacket.XRVOIPMetricItem.JBabsMax;
934 receivedVoIPMetrics.JBmax = rtcpPacket.XRVOIPMetricItem.JBmax;
935 receivedVoIPMetrics.JBnominal = rtcpPacket.XRVOIPMetricItem.JBnominal;
936 receivedVoIPMetrics.lossRate = rtcpPacket.XRVOIPMetricItem.lossRate;
937 receivedVoIPMetrics.MOSCQ = rtcpPacket.XRVOIPMetricItem.MOSCQ;
938 receivedVoIPMetrics.MOSLQ = rtcpPacket.XRVOIPMetricItem.MOSLQ;
939 receivedVoIPMetrics.noiseLevel = rtcpPacket.XRVOIPMetricItem.noiseLevel;
940 receivedVoIPMetrics.RERL = rtcpPacket.XRVOIPMetricItem.RERL;
941 receivedVoIPMetrics.Rfactor = rtcpPacket.XRVOIPMetricItem.Rfactor;
942 receivedVoIPMetrics.roundTripDelay =
943 rtcpPacket.XRVOIPMetricItem.roundTripDelay;
944 receivedVoIPMetrics.RXconfig = rtcpPacket.XRVOIPMetricItem.RXconfig;
945 receivedVoIPMetrics.signalLevel = rtcpPacket.XRVOIPMetricItem.signalLevel;
946
947 rtcpPacketInformation.AddVoIPMetric(&receivedVoIPMetrics);
948
949 rtcpPacketInformation.rtcpPacketTypeFlags |=
950 kRtcpXrVoipMetric; // received signal
951 }
952 rtcpParser.Iterate();
953 }
954
955 void RTCPReceiver::HandlePLI(RTCPUtility::RTCPParserV2& rtcpParser, 898 void RTCPReceiver::HandlePLI(RTCPUtility::RTCPParserV2& rtcpParser,
956 RTCPPacketInformation& rtcpPacketInformation) { 899 RTCPPacketInformation& rtcpPacketInformation) {
957 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); 900 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
958 if (main_ssrc_ == rtcpPacket.PLI.MediaSSRC) { 901 if (main_ssrc_ == rtcpPacket.PLI.MediaSSRC) {
959 TRACE_EVENT_INSTANT0(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "PLI"); 902 TRACE_EVENT_INSTANT0(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "PLI");
960 903
961 ++packet_type_counter_.pli_packets; 904 ++packet_type_counter_.pli_packets;
962 // Received a signal that we need to send a new key frame. 905 // Received a signal that we need to send a new key frame.
963 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpPli; 906 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpPli;
964 } 907 }
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 RTCPUtility::RTCPPacketTypes pktType = rtcpParser.Iterate(); 1054 RTCPUtility::RTCPPacketTypes pktType = rtcpParser.Iterate();
1112 if (pktType == RTCPPacketTypes::kPsfbRemb) { 1055 if (pktType == RTCPPacketTypes::kPsfbRemb) {
1113 pktType = rtcpParser.Iterate(); 1056 pktType = rtcpParser.Iterate();
1114 if (pktType == RTCPPacketTypes::kPsfbRembItem) { 1057 if (pktType == RTCPPacketTypes::kPsfbRembItem) {
1115 HandleREMBItem(rtcpParser, rtcpPacketInformation); 1058 HandleREMBItem(rtcpParser, rtcpPacketInformation);
1116 rtcpParser.Iterate(); 1059 rtcpParser.Iterate();
1117 } 1060 }
1118 } 1061 }
1119 } 1062 }
1120 1063
1121 void RTCPReceiver::HandleIJ(RTCPUtility::RTCPParserV2& rtcpParser,
1122 RTCPPacketInformation& rtcpPacketInformation) {
1123 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
1124
1125 RTCPUtility::RTCPPacketTypes pktType = rtcpParser.Iterate();
1126 while (pktType == RTCPPacketTypes::kExtendedIjItem) {
1127 HandleIJItem(rtcpPacket, rtcpPacketInformation);
1128 pktType = rtcpParser.Iterate();
1129 }
1130 }
1131
1132 void RTCPReceiver::HandleIJItem(const RTCPUtility::RTCPPacket& rtcpPacket,
1133 RTCPPacketInformation& rtcpPacketInformation) {
1134 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpTransmissionTimeOffset;
1135 rtcpPacketInformation.interArrivalJitter =
1136 rtcpPacket.ExtendedJitterReportItem.Jitter;
1137 }
1138
1139 void RTCPReceiver::HandleREMBItem( 1064 void RTCPReceiver::HandleREMBItem(
1140 RTCPUtility::RTCPParserV2& rtcpParser, 1065 RTCPUtility::RTCPParserV2& rtcpParser,
1141 RTCPPacketInformation& rtcpPacketInformation) { 1066 RTCPPacketInformation& rtcpPacketInformation) {
1142 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); 1067 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
1143 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpRemb; 1068 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpRemb;
1144 rtcpPacketInformation.receiverEstimatedMaxBitrate = 1069 rtcpPacketInformation.receiverEstimatedMaxBitrate =
1145 rtcpPacket.REMBItem.BitRate; 1070 rtcpPacket.REMBItem.BitRate;
1146 } 1071 }
1147 1072
1148 void RTCPReceiver::HandleFIR(RTCPUtility::RTCPParserV2& rtcpParser, 1073 void RTCPReceiver::HandleFIR(RTCPUtility::RTCPParserV2& rtcpParser,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1183 // received signal that we need to send a new key frame 1108 // received signal that we need to send a new key frame
1184 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpFir; 1109 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpFir;
1185 } 1110 }
1186 } 1111 }
1187 } else { 1112 } else {
1188 // received signal that we need to send a new key frame 1113 // received signal that we need to send a new key frame
1189 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpFir; 1114 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpFir;
1190 } 1115 }
1191 } 1116 }
1192 1117
1193 void RTCPReceiver::HandleAPP(RTCPUtility::RTCPParserV2& rtcpParser,
1194 RTCPPacketInformation& rtcpPacketInformation) {
1195 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
1196
1197 rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpApp;
1198 rtcpPacketInformation.applicationSubType = rtcpPacket.APP.SubType;
1199 rtcpPacketInformation.applicationName = rtcpPacket.APP.Name;
1200
1201 rtcpParser.Iterate();
1202 }
1203
1204 void RTCPReceiver::HandleAPPItem(RTCPUtility::RTCPParserV2& rtcpParser,
1205 RTCPPacketInformation& rtcpPacketInformation) {
1206 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
1207
1208 rtcpPacketInformation.AddApplicationData(rtcpPacket.APP.Data,
1209 rtcpPacket.APP.Size);
1210
1211 rtcpParser.Iterate();
1212 }
1213
1214 void RTCPReceiver::HandleTransportFeedback( 1118 void RTCPReceiver::HandleTransportFeedback(
1215 RTCPUtility::RTCPParserV2* rtcp_parser, 1119 RTCPUtility::RTCPParserV2* rtcp_parser,
1216 RTCPHelp::RTCPPacketInformation* rtcp_packet_information) { 1120 RTCPHelp::RTCPPacketInformation* rtcp_packet_information) {
1217 rtcp::RtcpPacket* packet = rtcp_parser->ReleaseRtcpPacket(); 1121 rtcp::RtcpPacket* packet = rtcp_parser->ReleaseRtcpPacket();
1218 RTC_DCHECK(packet != nullptr); 1122 RTC_DCHECK(packet != nullptr);
1219 rtcp_packet_information->rtcpPacketTypeFlags |= kRtcpTransportFeedback; 1123 rtcp_packet_information->rtcpPacketTypeFlags |= kRtcpTransportFeedback;
1220 rtcp_packet_information->transport_feedback_.reset( 1124 rtcp_packet_information->transport_feedback_.reset(
1221 static_cast<rtcp::TransportFeedback*>(packet)); 1125 static_cast<rtcp::TransportFeedback*>(packet));
1222 1126
1223 rtcp_parser->Iterate(); 1127 rtcp_parser->Iterate();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1379 1283
1380 for (const auto& kv : _receivedInfoMap) { 1284 for (const auto& kv : _receivedInfoMap) {
1381 RTCPReceiveInformation* receive_info = kv.second; 1285 RTCPReceiveInformation* receive_info = kv.second;
1382 RTC_DCHECK(receive_info); 1286 RTC_DCHECK(receive_info);
1383 receive_info->GetTmmbrSet(now_ms, &candidates); 1287 receive_info->GetTmmbrSet(now_ms, &candidates);
1384 } 1288 }
1385 return candidates; 1289 return candidates;
1386 } 1290 }
1387 1291
1388 } // namespace webrtc 1292 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_receiver.h ('k') | webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698