| OLD | NEW |
| 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 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 LOG(LS_WARNING) << "Removal of unknown sink."; | 446 LOG(LS_WARNING) << "Removal of unknown sink."; |
| 447 return; | 447 return; |
| 448 } | 448 } |
| 449 secondary_sinks_.erase(it); | 449 secondary_sinks_.erase(it); |
| 450 } | 450 } |
| 451 | 451 |
| 452 void RtpVideoStreamReceiver::ReceivePacket(const uint8_t* packet, | 452 void RtpVideoStreamReceiver::ReceivePacket(const uint8_t* packet, |
| 453 size_t packet_length, | 453 size_t packet_length, |
| 454 const RTPHeader& header, | 454 const RTPHeader& header, |
| 455 bool in_order) { | 455 bool in_order) { |
| 456 if (rtp_payload_registry_.IsRed(header)) { | 456 if (rtp_payload_registry_.IsEncapsulated(header)) { |
| 457 ParseAndHandleEncapsulatingHeader(packet, packet_length, header); | 457 ParseAndHandleEncapsulatingHeader(packet, packet_length, header); |
| 458 return; | 458 return; |
| 459 } | 459 } |
| 460 const uint8_t* payload = packet + header.headerLength; | 460 const uint8_t* payload = packet + header.headerLength; |
| 461 assert(packet_length >= header.headerLength); | 461 assert(packet_length >= header.headerLength); |
| 462 size_t payload_length = packet_length - header.headerLength; | 462 size_t payload_length = packet_length - header.headerLength; |
| 463 PayloadUnion payload_specific; | 463 PayloadUnion payload_specific; |
| 464 if (!rtp_payload_registry_.GetPayloadSpecifics(header.payloadType, | 464 if (!rtp_payload_registry_.GetPayloadSpecifics(header.payloadType, |
| 465 &payload_specific)) { | 465 &payload_specific)) { |
| 466 return; | 466 return; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 478 rtp_receive_statistics_->FecPacketReceived(header, packet_length); | 478 rtp_receive_statistics_->FecPacketReceived(header, packet_length); |
| 479 // Notify video_receiver about received FEC packets to avoid NACKing these | 479 // Notify video_receiver about received FEC packets to avoid NACKing these |
| 480 // packets. | 480 // packets. |
| 481 NotifyReceiverOfFecPacket(header); | 481 NotifyReceiverOfFecPacket(header); |
| 482 } | 482 } |
| 483 if (ulpfec_receiver_->AddReceivedRedPacket(header, packet, packet_length, | 483 if (ulpfec_receiver_->AddReceivedRedPacket(header, packet, packet_length, |
| 484 ulpfec_pt) != 0) { | 484 ulpfec_pt) != 0) { |
| 485 return; | 485 return; |
| 486 } | 486 } |
| 487 ulpfec_receiver_->ProcessReceivedFec(); | 487 ulpfec_receiver_->ProcessReceivedFec(); |
| 488 } else if (rtp_payload_registry_.IsRtx(header)) { |
| 489 LOG(LS_WARNING) << "Unexpected RTX packet on media ssrc"; |
| 488 } | 490 } |
| 489 } | 491 } |
| 490 | 492 |
| 491 void RtpVideoStreamReceiver::NotifyReceiverOfFecPacket( | 493 void RtpVideoStreamReceiver::NotifyReceiverOfFecPacket( |
| 492 const RTPHeader& header) { | 494 const RTPHeader& header) { |
| 493 int8_t last_media_payload_type = | 495 int8_t last_media_payload_type = |
| 494 rtp_payload_registry_.last_received_media_payload_type(); | 496 rtp_payload_registry_.last_received_media_payload_type(); |
| 495 if (last_media_payload_type < 0) { | 497 if (last_media_payload_type < 0) { |
| 496 LOG(LS_WARNING) << "Failed to get last media payload type."; | 498 LOG(LS_WARNING) << "Failed to get last media payload type."; |
| 497 return; | 499 return; |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 return; | 675 return; |
| 674 | 676 |
| 675 if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) | 677 if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) |
| 676 return; | 678 return; |
| 677 | 679 |
| 678 tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), | 680 tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), |
| 679 sprop_decoder.pps_nalu()); | 681 sprop_decoder.pps_nalu()); |
| 680 } | 682 } |
| 681 | 683 |
| 682 } // namespace webrtc | 684 } // namespace webrtc |
| OLD | NEW |