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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_receiver.h

Issue 2588753002: Style renames in RTCPReceiver implementation (Closed)
Patch Set: Created 4 years 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 16 matching lines...) Expand all
27 namespace webrtc { 27 namespace webrtc {
28 class VideoBitrateAllocationObserver; 28 class VideoBitrateAllocationObserver;
29 namespace rtcp { 29 namespace rtcp {
30 class CommonHeader; 30 class CommonHeader;
31 class ReportBlock; 31 class ReportBlock;
32 class Rrtr; 32 class Rrtr;
33 class TargetBitrate; 33 class TargetBitrate;
34 class TmmbItem; 34 class TmmbItem;
35 } // namespace rtcp 35 } // namespace rtcp
36 36
37 class RTCPReceiver { 37 class RTCPReceiver {
philipel 2016/12/19 15:39:07 RtcpReceiver? Or maybe that is for another CL...
danilchap 2016/12/19 16:37:56 prefer to leave for another CL changing name would
philipel 2016/12/20 09:55:55 Acknowledged.
38 public: 38 public:
39 class ModuleRtpRtcp { 39 class ModuleRtpRtcp {
40 public: 40 public:
41 virtual void SetTmmbn(std::vector<rtcp::TmmbItem> bounding_set) = 0; 41 virtual void SetTmmbn(std::vector<rtcp::TmmbItem> bounding_set) = 0;
42 virtual void OnRequestSendReport() = 0; 42 virtual void OnRequestSendReport() = 0;
43 virtual void OnReceivedNack( 43 virtual void OnReceivedNack(
44 const std::vector<uint16_t>& nack_sequence_numbers) = 0; 44 const std::vector<uint16_t>& nack_sequence_numbers) = 0;
45 virtual void OnReceivedRtcpReportBlocks( 45 virtual void OnReceivedRtcpReportBlocks(
46 const ReportBlockList& report_blocks) = 0; 46 const ReportBlockList& report_blocks) = 0;
47 47
48 protected: 48 protected:
49 virtual ~ModuleRtpRtcp() = default; 49 virtual ~ModuleRtpRtcp() = default;
50 }; 50 };
51 51
52 RTCPReceiver(Clock* clock, 52 RTCPReceiver(Clock* clock,
53 bool receiver_only, 53 bool receiver_only,
54 RtcpPacketTypeCounterObserver* packet_type_counter_observer, 54 RtcpPacketTypeCounterObserver* packet_type_counter_observer,
55 RtcpBandwidthObserver* rtcp_bandwidth_observer, 55 RtcpBandwidthObserver* rtcp_bandwidth_observer,
56 RtcpIntraFrameObserver* rtcp_intra_frame_observer, 56 RtcpIntraFrameObserver* rtcp_intra_frame_observer,
57 TransportFeedbackObserver* transport_feedback_observer, 57 TransportFeedbackObserver* transport_feedback_observer,
58 VideoBitrateAllocationObserver* bitrate_allocation_observer, 58 VideoBitrateAllocationObserver* bitrate_allocation_observer,
59 ModuleRtpRtcp* owner); 59 ModuleRtpRtcp* owner);
60 virtual ~RTCPReceiver(); 60 virtual ~RTCPReceiver();
61 61
62 bool IncomingPacket(const uint8_t* packet, size_t packet_size); 62 bool IncomingPacket(const uint8_t* packet, size_t packet_size);
63 63
64 int64_t LastReceivedReceiverReport() const; 64 int64_t LastReceivedReceiverReport() const;
65 65
66 void SetSsrcs(uint32_t main_ssrc, const std::set<uint32_t>& registered_ssrcs); 66 void SetSsrcs(uint32_t main_ssrc, const std::set<uint32_t>& registered_ssrcs);
67 void SetRemoteSSRC(uint32_t ssrc); 67 void SetRemoteSSRC(uint32_t ssrc);
philipel 2016/12/19 15:39:07 SetRemoteSsrc
danilchap 2016/12/19 16:37:56 Prefer to change public methods in a different CL.
philipel 2016/12/20 09:55:55 Acknowledged.
68 uint32_t RemoteSSRC() const; 68 uint32_t RemoteSSRC() const;
philipel 2016/12/19 15:39:07 RemoteSsrc
69 69
70 // get received cname 70 // Get received cname.
71 int32_t CNAME(uint32_t remoteSSRC, char cName[RTCP_CNAME_SIZE]) const; 71 int32_t CNAME(uint32_t remote_ssrc, char cname[RTCP_CNAME_SIZE]) const;
philipel 2016/12/19 15:39:07 Cname
72 72
73 // get received NTP 73 // Get received NTP.
74 bool NTP(uint32_t* ReceivedNTPsecs, 74 bool NTP(uint32_t* received_ntp_secs,
75 uint32_t* ReceivedNTPfrac, 75 uint32_t* received_ntp_frac,
76 uint32_t* RTCPArrivalTimeSecs, 76 uint32_t* rtcp_arrival_time_secs,
77 uint32_t* RTCPArrivalTimeFrac, 77 uint32_t* rtcp_arrival_time_frac,
78 uint32_t* rtcp_timestamp) const; 78 uint32_t* rtcp_timestamp) const;
79 79
80 bool LastReceivedXrReferenceTimeInfo(rtcp::ReceiveTimeInfo* info) const; 80 bool LastReceivedXrReferenceTimeInfo(rtcp::ReceiveTimeInfo* info) const;
81 81
82 // Get rtt. 82 // Get rtt.
83 int32_t RTT(uint32_t remote_ssrc, 83 int32_t RTT(uint32_t remote_ssrc,
philipel 2016/12/19 15:39:07 Rtt
84 int64_t* last_rtt_ms, 84 int64_t* last_rtt_ms,
85 int64_t* avg_rtt_ms, 85 int64_t* avg_rtt_ms,
86 int64_t* min_rtt_ms, 86 int64_t* min_rtt_ms,
87 int64_t* max_rtt_ms) const; 87 int64_t* max_rtt_ms) const;
88 88
89 int32_t SenderInfoReceived(RTCPSenderInfo* senderInfo) const; 89 int32_t SenderInfoReceived(RTCPSenderInfo* sender_info) const;
90 90
91 void SetRtcpXrRrtrStatus(bool enable); 91 void SetRtcpXrRrtrStatus(bool enable);
92 bool GetAndResetXrRrRtt(int64_t* rtt_ms); 92 bool GetAndResetXrRrRtt(int64_t* rtt_ms);
93 93
94 // get statistics 94 // Get statistics.
95 int32_t StatisticsReceived(std::vector<RTCPReportBlock>* receiveBlocks) const; 95 int32_t StatisticsReceived(std::vector<RTCPReportBlock>* receiveBlocks) const;
96 96
97 // Returns true if we haven't received an RTCP RR for several RTCP 97 // Returns true if we haven't received an RTCP RR for several RTCP
98 // intervals, but only triggers true once. 98 // intervals, but only triggers true once.
99 bool RtcpRrTimeout(int64_t rtcp_interval_ms); 99 bool RtcpRrTimeout(int64_t rtcp_interval_ms);
100 100
101 // Returns true if we haven't received an RTCP RR telling the receive side 101 // Returns true if we haven't received an RTCP RR telling the receive side
102 // has not received RTP packets for too long, i.e. extended highest sequence 102 // has not received RTP packets for too long, i.e. extended highest sequence
103 // number hasn't increased for several RTCP intervals. The function only 103 // number hasn't increased for several RTCP intervals. The function only
104 // returns true once until a new RR is received. 104 // returns true once until a new RR is received.
105 bool RtcpRrSequenceNumberTimeout(int64_t rtcp_interval_ms); 105 bool RtcpRrSequenceNumberTimeout(int64_t rtcp_interval_ms);
106 106
107 std::vector<rtcp::TmmbItem> TmmbrReceived(); 107 std::vector<rtcp::TmmbItem> TmmbrReceived();
108 108
109 bool UpdateRTCPReceiveInformationTimers(); 109 bool UpdateRTCPReceiveInformationTimers();
philipel 2016/12/19 15:39:07 UpdateRtcpReceiveInformationTimers
110 110
111 std::vector<rtcp::TmmbItem> BoundingSet(bool* tmmbr_owner); 111 std::vector<rtcp::TmmbItem> BoundingSet(bool* tmmbr_owner);
112 112
113 void UpdateTmmbr(); 113 void UpdateTmmbr();
114 114
115 void RegisterRtcpStatisticsCallback(RtcpStatisticsCallback* callback); 115 void RegisterRtcpStatisticsCallback(RtcpStatisticsCallback* callback);
116 RtcpStatisticsCallback* GetRtcpStatisticsCallback(); 116 RtcpStatisticsCallback* GetRtcpStatisticsCallback();
117 117
118 private: 118 private:
119 struct PacketInformation; 119 struct PacketInformation;
120 struct ReceiveInformation; 120 struct ReceiveInformation;
121 struct ReportBlockWithRtt; 121 struct ReportBlockWithRtt;
122 // Mapped by remote ssrc. 122 // Mapped by remote ssrc.
123 using ReceivedInfoMap = std::map<uint32_t, ReceiveInformation>; 123 using ReceivedInfoMap = std::map<uint32_t, ReceiveInformation>;
124 // RTCP report blocks mapped by remote SSRC. 124 // RTCP report blocks mapped by remote SSRC.
125 using ReportBlockInfoMap = std::map<uint32_t, ReportBlockWithRtt>; 125 using ReportBlockInfoMap = std::map<uint32_t, ReportBlockWithRtt>;
126 // RTCP report blocks map mapped by source SSRC. 126 // RTCP report blocks map mapped by source SSRC.
127 using ReportBlockMap = std::map<uint32_t, ReportBlockInfoMap>; 127 using ReportBlockMap = std::map<uint32_t, ReportBlockInfoMap>;
128 128
129 bool ParseCompoundPacket(const uint8_t* packet_begin, 129 bool ParseCompoundPacket(const uint8_t* packet_begin,
130 const uint8_t* packet_end, 130 const uint8_t* packet_end,
131 PacketInformation* packet_information); 131 PacketInformation* packet_information);
132 132
133 void TriggerCallbacksFromRTCPPacket( 133 void TriggerCallbacksFromRtcpPacket(
134 const PacketInformation& packet_information); 134 const PacketInformation& packet_information);
135 135
136 void CreateReceiveInformation(uint32_t remote_ssrc) 136 void CreateReceiveInformation(uint32_t remote_ssrc)
137 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 137 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
138 ReceiveInformation* GetReceiveInformation(uint32_t remote_ssrc) 138 ReceiveInformation* GetReceiveInformation(uint32_t remote_ssrc)
139 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 139 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
140 140
141 void HandleSenderReport(const rtcp::CommonHeader& rtcp_block, 141 void HandleSenderReport(const rtcp::CommonHeader& rtcp_block,
142 PacketInformation* packet_information) 142 PacketInformation* packet_information)
143 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 143 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
144 144
145 void HandleReceiverReport(const rtcp::CommonHeader& rtcp_block, 145 void HandleReceiverReport(const rtcp::CommonHeader& rtcp_block,
146 PacketInformation* packet_information) 146 PacketInformation* packet_information)
147 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 147 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
148 148
149 void HandleReportBlock(const rtcp::ReportBlock& report_block, 149 void HandleReportBlock(const rtcp::ReportBlock& report_block,
150 PacketInformation* packet_information, 150 PacketInformation* packet_information,
151 uint32_t remoteSSRC) 151 uint32_t remote_ssrc)
152 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 152 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
153 153
154 void HandleSDES(const rtcp::CommonHeader& rtcp_block, 154 void HandleSdes(const rtcp::CommonHeader& rtcp_block,
155 PacketInformation* packet_information) 155 PacketInformation* packet_information)
156 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 156 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
157 157
158 void HandleXr(const rtcp::CommonHeader& rtcp_block, 158 void HandleXr(const rtcp::CommonHeader& rtcp_block,
159 PacketInformation* packet_information) 159 PacketInformation* packet_information)
160 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 160 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
161 161
162 void HandleXrReceiveReferenceTime(uint32_t sender_ssrc, 162 void HandleXrReceiveReferenceTime(uint32_t sender_ssrc,
163 const rtcp::Rrtr& rrtr) 163 const rtcp::Rrtr& rrtr)
164 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 164 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
165 165
166 void HandleXrDlrrReportBlock(const rtcp::ReceiveTimeInfo& rti) 166 void HandleXrDlrrReportBlock(const rtcp::ReceiveTimeInfo& rti)
167 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 167 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
168 168
169 void HandleXrTargetBitrate(const rtcp::TargetBitrate& target_bitrate, 169 void HandleXrTargetBitrate(const rtcp::TargetBitrate& target_bitrate,
170 PacketInformation* packet_information) 170 PacketInformation* packet_information)
171 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 171 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
172 172
173 void HandleNACK(const rtcp::CommonHeader& rtcp_block, 173 void HandleNack(const rtcp::CommonHeader& rtcp_block,
174 PacketInformation* packet_information) 174 PacketInformation* packet_information)
175 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 175 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
176 176
177 void HandleBYE(const rtcp::CommonHeader& rtcp_block) 177 void HandleBye(const rtcp::CommonHeader& rtcp_block)
178 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 178 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
179 179
180 void HandlePLI(const rtcp::CommonHeader& rtcp_block, 180 void HandlePli(const rtcp::CommonHeader& rtcp_block,
181 PacketInformation* packet_information) 181 PacketInformation* packet_information)
182 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 182 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
183 183
184 void HandleSLI(const rtcp::CommonHeader& rtcp_block, 184 void HandleSli(const rtcp::CommonHeader& rtcp_block,
185 PacketInformation* packet_information) 185 PacketInformation* packet_information)
186 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 186 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
187 187
188 void HandleRPSI(const rtcp::CommonHeader& rtcp_block, 188 void HandleRpsi(const rtcp::CommonHeader& rtcp_block,
189 PacketInformation* packet_information) 189 PacketInformation* packet_information)
190 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 190 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
191 191
192 void HandlePsfbApp(const rtcp::CommonHeader& rtcp_block, 192 void HandlePsfbApp(const rtcp::CommonHeader& rtcp_block,
193 PacketInformation* packet_information) 193 PacketInformation* packet_information)
194 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 194 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
195 195
196 void HandleTMMBR(const rtcp::CommonHeader& rtcp_block, 196 void HandleTmmbr(const rtcp::CommonHeader& rtcp_block,
197 PacketInformation* packet_information) 197 PacketInformation* packet_information)
198 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 198 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
199 199
200 void HandleTMMBN(const rtcp::CommonHeader& rtcp_block, 200 void HandleTmmbn(const rtcp::CommonHeader& rtcp_block,
201 PacketInformation* packet_information) 201 PacketInformation* packet_information)
202 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 202 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
203 203
204 void HandleSR_REQ(const rtcp::CommonHeader& rtcp_block, 204 void HandleSrReq(const rtcp::CommonHeader& rtcp_block,
205 PacketInformation* packet_information) 205 PacketInformation* packet_information)
206 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 206 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
207 207
208 void HandleFIR(const rtcp::CommonHeader& rtcp_block, 208 void HandleFir(const rtcp::CommonHeader& rtcp_block,
209 PacketInformation* packet_information) 209 PacketInformation* packet_information)
210 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 210 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
211 211
212 void HandleTransportFeedback(const rtcp::CommonHeader& rtcp_block, 212 void HandleTransportFeedback(const rtcp::CommonHeader& rtcp_block,
213 PacketInformation* packet_information) 213 PacketInformation* packet_information)
214 EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver); 214 EXCLUSIVE_LOCKS_REQUIRED(rtcp_receiver_lock_);
215 215
216 Clock* const _clock; 216 Clock* const clock_;
217 const bool receiver_only_; 217 const bool receiver_only_;
218 ModuleRtpRtcp& _rtpRtcp; 218 ModuleRtpRtcp* const rtp_rtcp_;
219 219
220 rtc::CriticalSection feedbacks_lock_; 220 rtc::CriticalSection feedbacks_lock_;
221 RtcpBandwidthObserver* const rtcp_bandwidth_observer_; 221 RtcpBandwidthObserver* const rtcp_bandwidth_observer_;
222 RtcpIntraFrameObserver* const rtcp_intra_frame_observer_; 222 RtcpIntraFrameObserver* const rtcp_intra_frame_observer_;
223 TransportFeedbackObserver* const transport_feedback_observer_; 223 TransportFeedbackObserver* const transport_feedback_observer_;
224 VideoBitrateAllocationObserver* const bitrate_allocation_observer_; 224 VideoBitrateAllocationObserver* const bitrate_allocation_observer_;
225 225
226 rtc::CriticalSection _criticalSectionRTCPReceiver; 226 rtc::CriticalSection rtcp_receiver_lock_;
227 uint32_t main_ssrc_ GUARDED_BY(_criticalSectionRTCPReceiver); 227 uint32_t main_ssrc_ GUARDED_BY(rtcp_receiver_lock_);
228 uint32_t _remoteSSRC GUARDED_BY(_criticalSectionRTCPReceiver); 228 uint32_t remote_ssrc_ GUARDED_BY(rtcp_receiver_lock_);
229 std::set<uint32_t> registered_ssrcs_ GUARDED_BY(_criticalSectionRTCPReceiver); 229 std::set<uint32_t> registered_ssrcs_ GUARDED_BY(rtcp_receiver_lock_);
230 230
231 // Received send report 231 // Received sender report.
232 RTCPSenderInfo _remoteSenderInfo; 232 RTCPSenderInfo remote_sender_info_;
233 // When did we receive the last send report. 233 // When did we receive the last send report.
234 NtpTime last_received_sr_ntp_; 234 NtpTime last_received_sr_ntp_;
235 235
236 // Received XR receive time report. 236 // Received XR receive time report.
237 rtcp::ReceiveTimeInfo remote_time_info_; 237 rtcp::ReceiveTimeInfo remote_time_info_;
238 // Time when the report was received. 238 // Time when the report was received.
239 NtpTime last_received_xr_ntp_; 239 NtpTime last_received_xr_ntp_;
240 // Estimated rtt, zero when there is no valid estimate. 240 // Estimated rtt, zero when there is no valid estimate.
241 bool xr_rrtr_status_ GUARDED_BY(_criticalSectionRTCPReceiver); 241 bool xr_rrtr_status_ GUARDED_BY(rtcp_receiver_lock_);
242 int64_t xr_rr_rtt_ms_; 242 int64_t xr_rr_rtt_ms_;
243 243
244 // Received report blocks. 244 // Received report blocks.
245 ReportBlockMap received_report_blocks_ 245 ReportBlockMap received_report_blocks_ GUARDED_BY(rtcp_receiver_lock_);
246 GUARDED_BY(_criticalSectionRTCPReceiver); 246 ReceivedInfoMap received_infos_ GUARDED_BY(rtcp_receiver_lock_);
247 ReceivedInfoMap received_infos_ GUARDED_BY(_criticalSectionRTCPReceiver);
248 std::map<uint32_t, std::string> received_cnames_ 247 std::map<uint32_t, std::string> received_cnames_
249 GUARDED_BY(_criticalSectionRTCPReceiver); 248 GUARDED_BY(rtcp_receiver_lock_);
250 249
251 // The last time we received an RTCP RR. 250 // The last time we received an RTCP RR.
252 int64_t _lastReceivedRrMs; 251 int64_t last_received_rr_ms_;
253 252
254 // The time we last received an RTCP RR telling we have successfully 253 // The time we last received an RTCP RR telling we have successfully
255 // delivered RTP packet to the remote side. 254 // delivered RTP packet to the remote side.
256 int64_t _lastIncreasedSequenceNumberMs; 255 int64_t last_increased_sequence_number_ms_;
257 256
258 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(feedbacks_lock_); 257 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(feedbacks_lock_);
259 258
260 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; 259 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_;
261 RtcpPacketTypeCounter packet_type_counter_; 260 RtcpPacketTypeCounter packet_type_counter_;
262 261
263 RTCPUtility::NackStats nack_stats_; 262 RTCPUtility::NackStats nack_stats_;
264 263
265 size_t num_skipped_packets_; 264 size_t num_skipped_packets_;
266 int64_t last_skipped_packets_warning_; 265 int64_t last_skipped_packets_warning_ms_;
267 }; 266 };
268 } // namespace webrtc 267 } // namespace webrtc
269 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ 268 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc » ('j') | webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698