| 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 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 | 694 |
| 695 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildReceiverReferenceTime( | 695 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildReceiverReferenceTime( |
| 696 const RtcpContext& ctx) { | 696 const RtcpContext& ctx) { |
| 697 | 697 |
| 698 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); | 698 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); |
| 699 xr->SetSenderSsrc(ssrc_); | 699 xr->SetSenderSsrc(ssrc_); |
| 700 | 700 |
| 701 rtcp::Rrtr rrtr; | 701 rtcp::Rrtr rrtr; |
| 702 rrtr.SetNtp(NtpTime(ctx.ntp_sec_, ctx.ntp_frac_)); | 702 rrtr.SetNtp(NtpTime(ctx.ntp_sec_, ctx.ntp_frac_)); |
| 703 | 703 |
| 704 xr->AddRrtr(rrtr); | 704 xr->SetRrtr(rrtr); |
| 705 | 705 |
| 706 // TODO(sprang): Merge XR report sending to contain all of RRTR, DLRR, VOIP? | 706 // TODO(sprang): Merge XR report sending to contain all of RRTR, DLRR, VOIP? |
| 707 | 707 |
| 708 return std::unique_ptr<rtcp::RtcpPacket>(xr); | 708 return std::unique_ptr<rtcp::RtcpPacket>(xr); |
| 709 } | 709 } |
| 710 | 710 |
| 711 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildDlrr( | 711 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildDlrr( |
| 712 const RtcpContext& ctx) { | 712 const RtcpContext& ctx) { |
| 713 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); | 713 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); |
| 714 xr->SetSenderSsrc(ssrc_); | 714 xr->SetSenderSsrc(ssrc_); |
| 715 | |
| 716 rtcp::Dlrr dlrr; | |
| 717 RTC_DCHECK(ctx.feedback_state_.has_last_xr_rr); | 715 RTC_DCHECK(ctx.feedback_state_.has_last_xr_rr); |
| 718 dlrr.AddDlrrItem(ctx.feedback_state_.last_xr_rr); | 716 xr->AddDlrrItem(ctx.feedback_state_.last_xr_rr); |
| 719 | |
| 720 xr->AddDlrr(dlrr); | |
| 721 | 717 |
| 722 return std::unique_ptr<rtcp::RtcpPacket>(xr); | 718 return std::unique_ptr<rtcp::RtcpPacket>(xr); |
| 723 } | 719 } |
| 724 | 720 |
| 725 // TODO(sprang): Add a unit test for this, or remove if the code isn't used. | |
| 726 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildVoIPMetric( | 721 std::unique_ptr<rtcp::RtcpPacket> RTCPSender::BuildVoIPMetric( |
| 727 const RtcpContext& context) { | 722 const RtcpContext& context) { |
| 728 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); | 723 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); |
| 729 xr->SetSenderSsrc(ssrc_); | 724 xr->SetSenderSsrc(ssrc_); |
| 730 | 725 |
| 731 rtcp::VoipMetric voip; | 726 rtcp::VoipMetric voip; |
| 732 voip.SetMediaSsrc(remote_ssrc_); | 727 voip.SetMediaSsrc(remote_ssrc_); |
| 733 voip.SetVoipMetric(xr_voip_metric_); | 728 voip.SetVoipMetric(xr_voip_metric_); |
| 734 | 729 |
| 735 xr->AddVoipMetric(voip); | 730 xr->SetVoipMetric(voip); |
| 736 | 731 |
| 737 return std::unique_ptr<rtcp::RtcpPacket>(xr); | 732 return std::unique_ptr<rtcp::RtcpPacket>(xr); |
| 738 } | 733 } |
| 739 | 734 |
| 740 int32_t RTCPSender::SendRTCP(const FeedbackState& feedback_state, | 735 int32_t RTCPSender::SendRTCP(const FeedbackState& feedback_state, |
| 741 RTCPPacketType packetType, | 736 RTCPPacketType packetType, |
| 742 int32_t nack_size, | 737 int32_t nack_size, |
| 743 const uint16_t* nack_list, | 738 const uint16_t* nack_list, |
| 744 bool repeat, | 739 bool repeat, |
| 745 uint64_t pictureID) { | 740 uint64_t pictureID) { |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1042 // but we can't because of an incorrect warning (C4822) in MVS 2013. | 1037 // but we can't because of an incorrect warning (C4822) in MVS 2013. |
| 1043 } sender(transport_, event_log_); | 1038 } sender(transport_, event_log_); |
| 1044 | 1039 |
| 1045 RTC_DCHECK_LE(max_payload_length_, static_cast<size_t>(IP_PACKET_SIZE)); | 1040 RTC_DCHECK_LE(max_payload_length_, static_cast<size_t>(IP_PACKET_SIZE)); |
| 1046 uint8_t buffer[IP_PACKET_SIZE]; | 1041 uint8_t buffer[IP_PACKET_SIZE]; |
| 1047 return packet.BuildExternalBuffer(buffer, max_payload_length_, &sender) && | 1042 return packet.BuildExternalBuffer(buffer, max_payload_length_, &sender) && |
| 1048 !sender.send_failure_; | 1043 !sender.send_failure_; |
| 1049 } | 1044 } |
| 1050 | 1045 |
| 1051 } // namespace webrtc | 1046 } // namespace webrtc |
| OLD | NEW |