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

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

Issue 1746773002: [rtp_rtcp] tmmbr helper simplified by moving set_to_send member out (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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
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 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 request.set_ssrc(remote_ssrc_); 641 request.set_ssrc(remote_ssrc_);
642 request.set_bitrate_bps(tmmbr_send_ * 1000); 642 request.set_bitrate_bps(tmmbr_send_ * 1000);
643 request.set_packet_overhead(packet_oh_send_); 643 request.set_packet_overhead(packet_oh_send_);
644 tmmbr->WithTmmbr(request); 644 tmmbr->WithTmmbr(request);
645 645
646 return rtc::scoped_ptr<rtcp::Tmmbr>(tmmbr); 646 return rtc::scoped_ptr<rtcp::Tmmbr>(tmmbr);
647 } 647 }
648 648
649 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildTMMBN( 649 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildTMMBN(
650 const RtcpContext& ctx) { 650 const RtcpContext& ctx) {
651 TMMBRSet* boundingSet = tmmbr_help_.BoundingSetToSend();
652 if (boundingSet == nullptr)
653 return nullptr;
654
655 rtcp::Tmmbn* tmmbn = new rtcp::Tmmbn(); 651 rtcp::Tmmbn* tmmbn = new rtcp::Tmmbn();
656 tmmbn->From(ssrc_); 652 tmmbn->From(ssrc_);
657 for (uint32_t i = 0; i < boundingSet->lengthOfSet(); i++) { 653 for (const rtcp::TmmbItem& timber : tmmbn_to_send_) {
658 if (boundingSet->Tmmbr(i) > 0) { 654 if (timber.bitrate_bps() > 0) {
659 tmmbn->WithTmmbr(boundingSet->Ssrc(i), boundingSet->Tmmbr(i), 655 tmmbn->WithTmmbr(timber);
660 boundingSet->PacketOH(i));
661 } 656 }
662 } 657 }
663 658
664 return rtc::scoped_ptr<rtcp::Tmmbn>(tmmbn); 659 return rtc::scoped_ptr<rtcp::Tmmbn>(tmmbn);
665 } 660 }
666 661
667 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildAPP(const RtcpContext& ctx) { 662 rtc::scoped_ptr<rtcp::RtcpPacket> RTCPSender::BuildAPP(const RtcpContext& ctx) {
668 rtcp::App* app = new rtcp::App(); 663 rtcp::App* app = new rtcp::App();
669 app->From(ssrc_); 664 app->From(ssrc_);
670 app->WithSubType(app_sub_type_); 665 app->WithSubType(app_sub_type_);
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 CriticalSectionScoped lock(critical_section_rtcp_sender_.get()); 970 CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
976 xr_send_receiver_reference_time_enabled_ = enable; 971 xr_send_receiver_reference_time_enabled_ = enable;
977 } 972 }
978 973
979 bool RTCPSender::RtcpXrReceiverReferenceTime() const { 974 bool RTCPSender::RtcpXrReceiverReferenceTime() const {
980 CriticalSectionScoped lock(critical_section_rtcp_sender_.get()); 975 CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
981 return xr_send_receiver_reference_time_enabled_; 976 return xr_send_receiver_reference_time_enabled_;
982 } 977 }
983 978
984 // no callbacks allowed inside this function 979 // no callbacks allowed inside this function
985 int32_t RTCPSender::SetTMMBN(const TMMBRSet* boundingSet) { 980 void RTCPSender::SetTMMBN(const TMMBRSet* bounding_set) {
986 CriticalSectionScoped lock(critical_section_rtcp_sender_.get()); 981 CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
987 982 if (!bounding_set) {
988 if (0 == tmmbr_help_.SetTMMBRBoundingSetToSend(boundingSet)) { 983 tmmbn_to_send_.clear();
989 SetFlag(kRtcpTmmbn, true); 984 } else {
990 return 0; 985 tmmbn_to_send_ = *bounding_set;
991 } 986 }
992 return -1; 987 SetFlag(kRtcpTmmbn, true);
993 } 988 }
994 989
995 void RTCPSender::SetFlag(RTCPPacketType type, bool is_volatile) { 990 void RTCPSender::SetFlag(RTCPPacketType type, bool is_volatile) {
996 report_flags_.insert(ReportFlag(type, is_volatile)); 991 report_flags_.insert(ReportFlag(type, is_volatile));
997 } 992 }
998 993
999 void RTCPSender::SetFlags(const std::set<RTCPPacketType>& types, 994 void RTCPSender::SetFlags(const std::set<RTCPPacketType>& types,
1000 bool is_volatile) { 995 bool is_volatile) {
1001 for (RTCPPacketType type : types) 996 for (RTCPPacketType type : types)
1002 SetFlag(type, is_volatile); 997 SetFlag(type, is_volatile);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender); 1042 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender);
1048 // but we can't because of an incorrect warning (C4822) in MVS 2013. 1043 // but we can't because of an incorrect warning (C4822) in MVS 2013.
1049 } sender(transport_, event_log_); 1044 } sender(transport_, event_log_);
1050 1045
1051 uint8_t buffer[IP_PACKET_SIZE]; 1046 uint8_t buffer[IP_PACKET_SIZE];
1052 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && 1047 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1053 !sender.send_failure_; 1048 !sender.send_failure_;
1054 } 1049 }
1055 1050
1056 } // namespace webrtc 1051 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698