Chromium Code Reviews

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

Issue 1527003002: [rtp_rtcp] RtcpReceiverTest rewritten using public available interface (observers) instead intermid… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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 266 matching lines...)
277 for (; it != _receivedReportBlockMap.end(); ++it) { 277 for (; it != _receivedReportBlockMap.end(); ++it) {
278 const ReportBlockInfoMap* info_map = &(it->second); 278 const ReportBlockInfoMap* info_map = &(it->second);
279 ReportBlockInfoMap::const_iterator it_info = info_map->begin(); 279 ReportBlockInfoMap::const_iterator it_info = info_map->begin();
280 for (; it_info != info_map->end(); ++it_info) { 280 for (; it_info != info_map->end(); ++it_info) {
281 receiveBlocks->push_back(it_info->second->remoteReceiveBlock); 281 receiveBlocks->push_back(it_info->second->remoteReceiveBlock);
282 } 282 }
283 } 283 }
284 return 0; 284 return 0;
285 } 285 }
286 286
287 int32_t 287 bool RTCPReceiver::IncomingPacket(const uint8_t* buffer, size_t length) {
288 RTCPReceiver::IncomingRTCPPacket(RTCPPacketInformation& rtcpPacketInformation, 288 // Allow receive of non-compound RTCP packets.
289 RTCPUtility::RTCPParserV2* rtcpParser) 289 RTCPUtility::RTCPParserV2 rtcp_parser(buffer, length, true);
290 { 290
291 const bool valid_rtcpheader = rtcp_parser.IsValid();
292 if (!valid_rtcpheader) {
philipel 2016/02/24 11:02:01 Replace with if(!rtcp_parser.IsValid()) and remove
danilchap 2016/02/24 12:53:11 Actually yes: rtcp_parser do slightly more than va
293 LOG(LS_WARNING) << "Incoming invalid RTCP packet";
294 return false;
295 }
296 RTCPHelp::RTCPPacketInformation rtcp_packet_information;
297 IncomingRTCPPacket(rtcp_packet_information, &rtcp_parser);
298 TriggerCallbacksFromRTCPPacket(rtcp_packet_information);
299 return true;
300 }
301
302 void RTCPReceiver::IncomingRTCPPacket(
303 RTCPPacketInformation& rtcpPacketInformation,
304 RTCPUtility::RTCPParserV2* rtcpParser) {
291 CriticalSectionScoped lock(_criticalSectionRTCPReceiver); 305 CriticalSectionScoped lock(_criticalSectionRTCPReceiver);
292 306
293 _lastReceived = _clock->TimeInMilliseconds(); 307 _lastReceived = _clock->TimeInMilliseconds();
294 308
295 if (packet_type_counter_.first_packet_time_ms == -1) { 309 if (packet_type_counter_.first_packet_time_ms == -1) {
296 packet_type_counter_.first_packet_time_ms = _lastReceived; 310 packet_type_counter_.first_packet_time_ms = _lastReceived;
297 } 311 }
298 312
299 RTCPUtility::RTCPPacketTypes pktType = rtcpParser->Begin(); 313 RTCPUtility::RTCPPacketTypes pktType = rtcpParser->Begin();
300 while (pktType != RTCPPacketTypes::kInvalid) { 314 while (pktType != RTCPPacketTypes::kInvalid) {
(...skipping 81 matching lines...)
382 int64_t now = _clock->TimeInMilliseconds(); 396 int64_t now = _clock->TimeInMilliseconds();
383 if (now - last_skipped_packets_warning_ >= kMaxWarningLogIntervalMs && 397 if (now - last_skipped_packets_warning_ >= kMaxWarningLogIntervalMs &&
384 num_skipped_packets_ > 0) { 398 num_skipped_packets_ > 0) {
385 last_skipped_packets_warning_ = now; 399 last_skipped_packets_warning_ = now;
386 LOG(LS_WARNING) 400 LOG(LS_WARNING)
387 << num_skipped_packets_ 401 << num_skipped_packets_
388 << " RTCP blocks were skipped due to being malformed or of " 402 << " RTCP blocks were skipped due to being malformed or of "
389 "unrecognized/unsupported type, during the past " 403 "unrecognized/unsupported type, during the past "
390 << (kMaxWarningLogIntervalMs / 1000) << " second period."; 404 << (kMaxWarningLogIntervalMs / 1000) << " second period.";
391 } 405 }
392
393 return 0;
394 } 406 }
395 407
396 void 408 void
397 RTCPReceiver::HandleSenderReceiverReport(RTCPUtility::RTCPParserV2& rtcpParser, 409 RTCPReceiver::HandleSenderReceiverReport(RTCPUtility::RTCPParserV2& rtcpParser,
398 RTCPPacketInformation& rtcpPacketInform ation) 410 RTCPPacketInformation& rtcpPacketInform ation)
399 { 411 {
400 RTCPUtility::RTCPPacketTypes rtcpPacketType = rtcpParser.PacketType(); 412 RTCPUtility::RTCPPacketTypes rtcpPacketType = rtcpParser.PacketType();
401 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet(); 413 const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
402 414
403 assert((rtcpPacketType == RTCPPacketTypes::kRr) || 415 assert((rtcpPacketType == RTCPPacketTypes::kRr) ||
(...skipping 1042 matching lines...)
1446 return -1; 1458 return -1;
1447 } 1459 }
1448 num += receiveInfo->TmmbrSet.lengthOfSet(); 1460 num += receiveInfo->TmmbrSet.lengthOfSet();
1449 receiveInfoIt++; 1461 receiveInfoIt++;
1450 } 1462 }
1451 } 1463 }
1452 return num; 1464 return num;
1453 } 1465 }
1454 1466
1455 } // namespace webrtc 1467 } // namespace webrtc
OLDNEW

Powered by Google App Engine