Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(381)

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

Issue 1557593002: [rtp_rtcp] rtcp::ExtenededReports packet got Parse function (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase & fix win compile errors Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 last_xr_rr_.insert(std::pair<uint32_t, int64_t>( 755 last_xr_rr_.insert(std::pair<uint32_t, int64_t>(
756 RTCPUtility::MidNtp(ctx.ntp_sec_, ctx.ntp_frac_), 756 RTCPUtility::MidNtp(ctx.ntp_sec_, ctx.ntp_frac_),
757 Clock::NtpToMs(ctx.ntp_sec_, ctx.ntp_frac_))); 757 Clock::NtpToMs(ctx.ntp_sec_, ctx.ntp_frac_)));
758 758
759 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); 759 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports();
760 xr->From(ssrc_); 760 xr->From(ssrc_);
761 761
762 rtcp::Rrtr rrtr; 762 rtcp::Rrtr rrtr;
763 rrtr.WithNtp(NtpTime(ctx.ntp_sec_, ctx.ntp_frac_)); 763 rrtr.WithNtp(NtpTime(ctx.ntp_sec_, ctx.ntp_frac_));
764 764
765 xr->WithRrtr(&rrtr); 765 xr->WithRrtr(rrtr);
766 766
767 // TODO(sprang): Merge XR report sending to contain all of RRTR, DLRR, VOIP? 767 // TODO(sprang): Merge XR report sending to contain all of RRTR, DLRR, VOIP?
768 768
769 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr); 769 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr);
770 } 770 }
771 771
772 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildDlrr( 772 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildDlrr(
773 const RtcpContext& ctx) { 773 const RtcpContext& ctx) {
774 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); 774 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports();
775 xr->From(ssrc_); 775 xr->From(ssrc_);
776 776
777 rtcp::Dlrr dlrr; 777 rtcp::Dlrr dlrr;
778 const RtcpReceiveTimeInfo& info = ctx.feedback_state_.last_xr_rr; 778 const RtcpReceiveTimeInfo& info = ctx.feedback_state_.last_xr_rr;
779 dlrr.WithDlrrItem(info.sourceSSRC, info.lastRR, info.delaySinceLastRR); 779 dlrr.WithDlrrItem(info.sourceSSRC, info.lastRR, info.delaySinceLastRR);
780 780
781 xr->WithDlrr(&dlrr); 781 xr->WithDlrr(dlrr);
782 782
783 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr); 783 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr);
784 } 784 }
785 785
786 // TODO(sprang): Add a unit test for this, or remove if the code isn't used. 786 // TODO(sprang): Add a unit test for this, or remove if the code isn't used.
787 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildVoIPMetric( 787 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildVoIPMetric(
788 const RtcpContext& context) { 788 const RtcpContext& context) {
789 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports(); 789 rtcp::ExtendedReports* xr = new rtcp::ExtendedReports();
790 xr->From(ssrc_); 790 xr->From(ssrc_);
791 791
792 rtcp::VoipMetric voip; 792 rtcp::VoipMetric voip;
793 voip.To(remote_ssrc_); 793 voip.To(remote_ssrc_);
794 voip.WithVoipMetric(xr_voip_metric_); 794 voip.WithVoipMetric(xr_voip_metric_);
795 795
796 xr->WithVoipMetric(&voip); 796 xr->WithVoipMetric(voip);
797 797
798 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr); 798 return rtc::scoped_ptr<rtcp::RtcpPacket>(xr);
799 } 799 }
800 800
801 int32_t RTCPSender::SendRTCP(const FeedbackState& feedback_state, 801 int32_t RTCPSender::SendRTCP(const FeedbackState& feedback_state,
802 RTCPPacketType packetType, 802 RTCPPacketType packetType,
803 int32_t nack_size, 803 int32_t nack_size,
804 const uint16_t* nack_list, 804 const uint16_t* nack_list,
805 bool repeat, 805 bool repeat,
806 uint64_t pictureID) { 806 uint64_t pictureID) {
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender); 1079 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender);
1080 // but we can't because of an incorrect warning (C4822) in MVS 2013. 1080 // but we can't because of an incorrect warning (C4822) in MVS 2013.
1081 } sender(transport_, event_log_); 1081 } sender(transport_, event_log_);
1082 1082
1083 uint8_t buffer[IP_PACKET_SIZE]; 1083 uint8_t buffer[IP_PACKET_SIZE];
1084 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && 1084 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1085 !sender.send_failure_; 1085 !sender.send_failure_;
1086 } 1086 }
1087 1087
1088 } // namespace webrtc 1088 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698