| Index: webrtc/video/rtp_stream_receiver.cc
|
| diff --git a/webrtc/video/rtp_stream_receiver.cc b/webrtc/video/rtp_stream_receiver.cc
|
| index 99d0cc893f25f19d606fdfdfd09827f447be3b79..78057771d6e5705b65e37eebdbba59ef24fa8c88 100644
|
| --- a/webrtc/video/rtp_stream_receiver.cc
|
| +++ b/webrtc/video/rtp_stream_receiver.cc
|
| @@ -277,17 +277,17 @@ int32_t RtpStreamReceiver::OnReceivedPayloadData(
|
| }
|
|
|
| // TODO(nisse): Try to delete this method. Obstacles: It is used by
|
| -// ParseAndHandleEncapsulatingHeader, for handling Rtx packets. And
|
| -// it's part of the RtpData interface which we implement.
|
| -bool RtpStreamReceiver::OnRecoveredPacket(const uint8_t* rtp_packet,
|
| +// ParseAndHandleEncapsulatingHeader, for handling Rtx packets, and
|
| +// for callbacks from |ulpfec_receiver_|.
|
| +void RtpStreamReceiver::OnRecoveredPacket(const uint8_t* rtp_packet,
|
| size_t rtp_packet_length) {
|
| RTPHeader header;
|
| if (!rtp_header_parser_->Parse(rtp_packet, rtp_packet_length, &header)) {
|
| - return false;
|
| + return;
|
| }
|
| header.payload_type_frequency = kVideoPayloadTypeFrequency;
|
| bool in_order = IsPacketInOrder(header);
|
| - return ReceivePacket(rtp_packet, rtp_packet_length, header, in_order);
|
| + ReceivePacket(rtp_packet, rtp_packet_length, header, in_order);
|
| }
|
|
|
| // TODO(pbos): Remove as soon as audio can handle a changing payload type
|
| @@ -428,13 +428,13 @@ rtc::Optional<int64_t> RtpStreamReceiver::LastReceivedKeyframePacketMs() const {
|
| return packet_buffer_->LastReceivedKeyframePacketMs();
|
| }
|
|
|
| -// TODO(nisse): Drop return value.
|
| -bool RtpStreamReceiver::ReceivePacket(const uint8_t* packet,
|
| +void RtpStreamReceiver::ReceivePacket(const uint8_t* packet,
|
| size_t packet_length,
|
| const RTPHeader& header,
|
| bool in_order) {
|
| if (rtp_payload_registry_.IsEncapsulated(header)) {
|
| - return ParseAndHandleEncapsulatingHeader(packet, packet_length, header);
|
| + ParseAndHandleEncapsulatingHeader(packet, packet_length, header);
|
| + return;
|
| }
|
| const uint8_t* payload = packet + header.headerLength;
|
| assert(packet_length >= header.headerLength);
|
| @@ -442,13 +442,13 @@ bool RtpStreamReceiver::ReceivePacket(const uint8_t* packet,
|
| PayloadUnion payload_specific;
|
| if (!rtp_payload_registry_.GetPayloadSpecifics(header.payloadType,
|
| &payload_specific)) {
|
| - return false;
|
| + return;
|
| }
|
| - return rtp_receiver_->IncomingRtpPacket(header, payload, payload_length,
|
| - payload_specific, in_order);
|
| + rtp_receiver_->IncomingRtpPacket(header, payload, payload_length,
|
| + payload_specific, in_order);
|
| }
|
|
|
| -bool RtpStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
| +void RtpStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
| const uint8_t* packet, size_t packet_length, const RTPHeader& header) {
|
| if (rtp_payload_registry_.IsRed(header)) {
|
| int8_t ulpfec_pt = rtp_payload_registry_.ulpfec_payload_type();
|
| @@ -460,24 +460,24 @@ bool RtpStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
| }
|
| if (ulpfec_receiver_->AddReceivedRedPacket(header, packet, packet_length,
|
| ulpfec_pt) != 0) {
|
| - return false;
|
| + return;
|
| }
|
| - return ulpfec_receiver_->ProcessReceivedFec() == 0;
|
| + ulpfec_receiver_->ProcessReceivedFec();
|
| } else if (rtp_payload_registry_.IsRtx(header)) {
|
| if (header.headerLength + header.paddingLength == packet_length) {
|
| // This is an empty packet and should be silently dropped before trying to
|
| // parse the RTX header.
|
| - return true;
|
| + return;
|
| }
|
| // Remove the RTX header and parse the original RTP header.
|
| if (packet_length < header.headerLength)
|
| - return false;
|
| + return;
|
| if (packet_length > sizeof(restored_packet_))
|
| - return false;
|
| + return;
|
| rtc::CritScope lock(&receive_cs_);
|
| if (restored_packet_in_use_) {
|
| LOG(LS_WARNING) << "Multiple RTX headers detected, dropping packet.";
|
| - return false;
|
| + return;
|
| }
|
| if (!rtp_payload_registry_.RestoreOriginalPacket(
|
| restored_packet_, packet, &packet_length, rtp_receiver_->SSRC(),
|
| @@ -485,14 +485,12 @@ bool RtpStreamReceiver::ParseAndHandleEncapsulatingHeader(
|
| LOG(LS_WARNING) << "Incoming RTX packet: Invalid RTP header ssrc: "
|
| << header.ssrc << " payload type: "
|
| << static_cast<int>(header.payloadType);
|
| - return false;
|
| + return;
|
| }
|
| restored_packet_in_use_ = true;
|
| - bool ret = OnRecoveredPacket(restored_packet_, packet_length);
|
| + OnRecoveredPacket(restored_packet_, packet_length);
|
| restored_packet_in_use_ = false;
|
| - return ret;
|
| }
|
| - return false;
|
| }
|
|
|
| void RtpStreamReceiver::NotifyReceiverOfFecPacket(const RTPHeader& header) {
|
|
|