Chromium Code Reviews| 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 e8a943f23eecaacb7889137feb98ba9719a2aff2..1b6d7063a11b4feea9c938ea67fe21a20700c376 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc |
| @@ -284,10 +284,24 @@ int32_t RTCPReceiver::StatisticsReceived( |
| return 0; |
| } |
| -int32_t |
| -RTCPReceiver::IncomingRTCPPacket(RTCPPacketInformation& rtcpPacketInformation, |
| - RTCPUtility::RTCPParserV2* rtcpParser) |
| -{ |
| +bool RTCPReceiver::IncomingPacket(const uint8_t* buffer, size_t length) { |
| + // Allow receive of non-compound RTCP packets. |
| + RTCPUtility::RTCPParserV2 rtcp_parser(buffer, length, true); |
| + |
| + const bool valid_rtcpheader = rtcp_parser.IsValid(); |
| + 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
|
| + LOG(LS_WARNING) << "Incoming invalid RTCP packet"; |
| + return false; |
| + } |
| + RTCPHelp::RTCPPacketInformation rtcp_packet_information; |
| + IncomingRTCPPacket(rtcp_packet_information, &rtcp_parser); |
| + TriggerCallbacksFromRTCPPacket(rtcp_packet_information); |
| + return true; |
| +} |
| + |
| +void RTCPReceiver::IncomingRTCPPacket( |
| + RTCPPacketInformation& rtcpPacketInformation, |
| + RTCPUtility::RTCPParserV2* rtcpParser) { |
| CriticalSectionScoped lock(_criticalSectionRTCPReceiver); |
| _lastReceived = _clock->TimeInMilliseconds(); |
| @@ -389,8 +403,6 @@ RTCPReceiver::IncomingRTCPPacket(RTCPPacketInformation& rtcpPacketInformation, |
| "unrecognized/unsupported type, during the past " |
| << (kMaxWarningLogIntervalMs / 1000) << " second period."; |
| } |
| - |
| - return 0; |
| } |
| void |