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

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

Issue 1748403002: Move RtcEventLog object from inside VoiceEngine to Call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Updated RTP/RTCP module to use setter methods instead of passing the event log pointer in the const… 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 const uint32_t ntp_frac_; 151 const uint32_t ntp_frac_;
152 152
153 PacketContainer* const container_; 153 PacketContainer* const container_;
154 }; 154 };
155 155
156 RTCPSender::RTCPSender( 156 RTCPSender::RTCPSender(
157 bool audio, 157 bool audio,
158 Clock* clock, 158 Clock* clock,
159 ReceiveStatistics* receive_statistics, 159 ReceiveStatistics* receive_statistics,
160 RtcpPacketTypeCounterObserver* packet_type_counter_observer, 160 RtcpPacketTypeCounterObserver* packet_type_counter_observer,
161 RtcEventLog* event_log,
162 Transport* outgoing_transport) 161 Transport* outgoing_transport)
163 : audio_(audio), 162 : audio_(audio),
164 clock_(clock), 163 clock_(clock),
165 random_(clock_->TimeInMicroseconds()), 164 random_(clock_->TimeInMicroseconds()),
166 method_(RtcpMode::kOff), 165 method_(RtcpMode::kOff),
167 event_log_(event_log), 166 event_log_(nullptr),
168 transport_(outgoing_transport), 167 transport_(outgoing_transport),
169 168
170 critical_section_rtcp_sender_( 169 critical_section_rtcp_sender_(
171 CriticalSectionWrapper::CreateCriticalSection()), 170 CriticalSectionWrapper::CreateCriticalSection()),
172 using_nack_(false), 171 using_nack_(false),
173 sending_(false), 172 sending_(false),
174 remb_enabled_(false), 173 remb_enabled_(false),
175 next_time_to_send_rtcp_(0), 174 next_time_to_send_rtcp_(0),
176 start_timestamp_(0), 175 start_timestamp_(0),
177 last_rtp_timestamp_(0), 176 last_rtp_timestamp_(0),
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 nack_size, nack_list, repeat, pictureID); 764 nack_size, nack_list, repeat, pictureID);
766 } 765 }
767 766
768 int32_t RTCPSender::SendCompoundRTCP( 767 int32_t RTCPSender::SendCompoundRTCP(
769 const FeedbackState& feedback_state, 768 const FeedbackState& feedback_state,
770 const std::set<RTCPPacketType>& packet_types, 769 const std::set<RTCPPacketType>& packet_types,
771 int32_t nack_size, 770 int32_t nack_size,
772 const uint16_t* nack_list, 771 const uint16_t* nack_list,
773 bool repeat, 772 bool repeat,
774 uint64_t pictureID) { 773 uint64_t pictureID) {
774 CriticalSectionScoped event_lock(event_log_crit_.get());
775 PacketContainer container(transport_, event_log_); 775 PacketContainer container(transport_, event_log_);
776 { 776 {
777 CriticalSectionScoped lock(critical_section_rtcp_sender_.get()); 777 CriticalSectionScoped lock(critical_section_rtcp_sender_.get());
778 if (method_ == RtcpMode::kOff) { 778 if (method_ == RtcpMode::kOff) {
779 LOG(LS_WARNING) << "Can't send rtcp if it is disabled."; 779 LOG(LS_WARNING) << "Can't send rtcp if it is disabled.";
780 return -1; 780 return -1;
781 } 781 }
782 782
783 // We need to send our NTP even if we haven't received any reports. 783 // We need to send our NTP even if we haven't received any reports.
784 uint32_t ntp_sec; 784 uint32_t ntp_sec;
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 1017
1018 bool RTCPSender::AllVolatileFlagsConsumed() const { 1018 bool RTCPSender::AllVolatileFlagsConsumed() const {
1019 for (const ReportFlag& flag : report_flags_) { 1019 for (const ReportFlag& flag : report_flags_) {
1020 if (flag.is_volatile) 1020 if (flag.is_volatile)
1021 return false; 1021 return false;
1022 } 1022 }
1023 return true; 1023 return true;
1024 } 1024 }
1025 1025
1026 bool RTCPSender::SendFeedbackPacket(const rtcp::TransportFeedback& packet) { 1026 bool RTCPSender::SendFeedbackPacket(const rtcp::TransportFeedback& packet) {
1027 CriticalSectionScoped lock(event_log_crit_.get());
1027 class Sender : public rtcp::RtcpPacket::PacketReadyCallback { 1028 class Sender : public rtcp::RtcpPacket::PacketReadyCallback {
1028 public: 1029 public:
1029 Sender(Transport* transport, RtcEventLog* event_log) 1030 Sender(Transport* transport, RtcEventLog* event_log)
1030 : transport_(transport), event_log_(event_log), send_failure_(false) {} 1031 : transport_(transport), event_log_(event_log), send_failure_(false) {}
1031 1032
1032 void OnPacketReady(uint8_t* data, size_t length) override { 1033 void OnPacketReady(uint8_t* data, size_t length) override {
1033 if (transport_->SendRtcp(data, length)) { 1034 if (transport_->SendRtcp(data, length)) {
1034 if (event_log_) { 1035 if (event_log_) {
1035 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data, 1036 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data,
1036 length); 1037 length);
1037 } 1038 }
1038 } else { 1039 } else {
1039 send_failure_ = true; 1040 send_failure_ = true;
1040 } 1041 }
1041 } 1042 }
1042 1043
1043 Transport* const transport_; 1044 Transport* const transport_;
1044 RtcEventLog* const event_log_; 1045 RtcEventLog* const event_log_;
1045 bool send_failure_; 1046 bool send_failure_;
1046 // TODO(terelius): We would like to 1047 // TODO(terelius): We would like to
1047 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender); 1048 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender);
1048 // but we can't because of an incorrect warning (C4822) in MVS 2013. 1049 // but we can't because of an incorrect warning (C4822) in MVS 2013.
1049 } sender(transport_, event_log_); 1050 } sender(transport_, event_log_);
1050 1051
1051 uint8_t buffer[IP_PACKET_SIZE]; 1052 uint8_t buffer[IP_PACKET_SIZE];
1052 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && 1053 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1053 !sender.send_failure_; 1054 !sender.send_failure_;
1054 } 1055 }
1055 1056
1057 void RTCPSender::SetRtcEventLog(webrtc::RtcEventLog* event_log) {
1058 CriticalSectionScoped lock(event_log_crit_.get());
1059 event_log_ = event_log;
1060 }
1056 } // namespace webrtc 1061 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698