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

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: Introduce proxy object for RtcEventLog and handle other comments. 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 send_bitrate(0), 84 send_bitrate(0),
85 last_rr_ntp_secs(0), 85 last_rr_ntp_secs(0),
86 last_rr_ntp_frac(0), 86 last_rr_ntp_frac(0),
87 remote_sr(0), 87 remote_sr(0),
88 has_last_xr_rr(false), 88 has_last_xr_rr(false),
89 module(nullptr) {} 89 module(nullptr) {}
90 90
91 class PacketContainer : public rtcp::CompoundPacket, 91 class PacketContainer : public rtcp::CompoundPacket,
92 public rtcp::RtcpPacket::PacketReadyCallback { 92 public rtcp::RtcpPacket::PacketReadyCallback {
93 public: 93 public:
94 PacketContainer(Transport* transport, RtcEventLog* event_log) 94 PacketContainer(Transport* transport, RtcEventLogProxy* event_log)
95 : transport_(transport), event_log_(event_log), bytes_sent_(0) {} 95 : transport_(transport), event_log_(event_log), bytes_sent_(0) {}
96 virtual ~PacketContainer() { 96 virtual ~PacketContainer() {
97 for (RtcpPacket* packet : appended_packets_) 97 for (RtcpPacket* packet : appended_packets_)
98 delete packet; 98 delete packet;
99 } 99 }
100 100
101 void OnPacketReady(uint8_t* data, size_t length) override { 101 void OnPacketReady(uint8_t* data, size_t length) override {
102 if (transport_->SendRtcp(data, length)) { 102 if (transport_->SendRtcp(data, length)) {
103 bytes_sent_ += length; 103 bytes_sent_ += length;
104 if (event_log_) { 104 if (event_log_) {
105 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data, 105 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data,
106 length); 106 length);
107 } 107 }
108 } 108 }
109 } 109 }
110 110
111 size_t SendPackets() { 111 size_t SendPackets() {
112 rtcp::CompoundPacket::Build(this); 112 rtcp::CompoundPacket::Build(this);
113 return bytes_sent_; 113 return bytes_sent_;
114 } 114 }
115 115
116 private: 116 private:
117 Transport* transport_; 117 Transport* transport_;
118 RtcEventLog* const event_log_; 118 RtcEventLogProxy* const event_log_;
119 size_t bytes_sent_; 119 size_t bytes_sent_;
120 120
121 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(PacketContainer); 121 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(PacketContainer);
122 }; 122 };
123 123
124 class RTCPSender::RtcpContext { 124 class RTCPSender::RtcpContext {
125 public: 125 public:
126 RtcpContext(const FeedbackState& feedback_state, 126 RtcpContext(const FeedbackState& feedback_state,
127 int32_t nack_size, 127 int32_t nack_size,
128 const uint16_t* nack_list, 128 const uint16_t* nack_list,
(...skipping 22 matching lines...) Expand all
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, 161 RtcEventLogProxy* event_log,
162 Transport* outgoing_transport) 162 Transport* outgoing_transport)
163 : audio_(audio), 163 : audio_(audio),
164 clock_(clock), 164 clock_(clock),
165 random_(clock_->TimeInMicroseconds()), 165 random_(clock_->TimeInMicroseconds()),
166 method_(RtcpMode::kOff), 166 method_(RtcpMode::kOff),
167 event_log_(event_log), 167 event_log_(event_log),
168 transport_(outgoing_transport), 168 transport_(outgoing_transport),
169 169
170 critical_section_rtcp_sender_( 170 critical_section_rtcp_sender_(
171 CriticalSectionWrapper::CreateCriticalSection()), 171 CriticalSectionWrapper::CreateCriticalSection()),
(...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 class Sender : public rtcp::RtcpPacket::PacketReadyCallback { 1027 class Sender : public rtcp::RtcpPacket::PacketReadyCallback {
1028 public: 1028 public:
1029 Sender(Transport* transport, RtcEventLog* event_log) 1029 Sender(Transport* transport, RtcEventLogProxy* event_log)
1030 : transport_(transport), event_log_(event_log), send_failure_(false) {} 1030 : transport_(transport), event_log_(event_log), send_failure_(false) {}
1031 1031
1032 void OnPacketReady(uint8_t* data, size_t length) override { 1032 void OnPacketReady(uint8_t* data, size_t length) override {
1033 if (transport_->SendRtcp(data, length)) { 1033 if (transport_->SendRtcp(data, length)) {
1034 if (event_log_) { 1034 if (event_log_) {
1035 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data, 1035 event_log_->LogRtcpPacket(kOutgoingPacket, MediaType::ANY, data,
1036 length); 1036 length);
1037 } 1037 }
1038 } else { 1038 } else {
1039 send_failure_ = true; 1039 send_failure_ = true;
1040 } 1040 }
1041 } 1041 }
1042 1042
1043 Transport* const transport_; 1043 Transport* const transport_;
1044 RtcEventLog* const event_log_; 1044 RtcEventLogProxy* const event_log_;
1045 bool send_failure_; 1045 bool send_failure_;
1046 // TODO(terelius): We would like to 1046 // TODO(terelius): We would like to
1047 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender); 1047 // RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Sender);
1048 // but we can't because of an incorrect warning (C4822) in MVS 2013. 1048 // but we can't because of an incorrect warning (C4822) in MVS 2013.
1049 } sender(transport_, event_log_); 1049 } sender(transport_, event_log_);
1050 1050
1051 uint8_t buffer[IP_PACKET_SIZE]; 1051 uint8_t buffer[IP_PACKET_SIZE];
1052 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && 1052 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1053 !sender.send_failure_; 1053 !sender.send_failure_;
1054 } 1054 }
1055
1056 } // namespace webrtc 1055 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698