OLD | NEW |
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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 struct LastFirStatus; |
122 // Mapped by remote ssrc. | 123 // Mapped by remote ssrc. |
123 using ReceivedInfoMap = std::map<uint32_t, ReceiveInformation>; | 124 using ReceivedInfoMap = std::map<uint32_t, ReceiveInformation>; |
124 // RTCP report blocks mapped by remote SSRC. | 125 // RTCP report blocks mapped by remote SSRC. |
125 using ReportBlockInfoMap = std::map<uint32_t, ReportBlockWithRtt>; | 126 using ReportBlockInfoMap = std::map<uint32_t, ReportBlockWithRtt>; |
126 // RTCP report blocks map mapped by source SSRC. | 127 // RTCP report blocks map mapped by source SSRC. |
127 using ReportBlockMap = std::map<uint32_t, ReportBlockInfoMap>; | 128 using ReportBlockMap = std::map<uint32_t, ReportBlockInfoMap>; |
128 | 129 |
129 bool ParseCompoundPacket(const uint8_t* packet_begin, | 130 bool ParseCompoundPacket(const uint8_t* packet_begin, |
130 const uint8_t* packet_end, | 131 const uint8_t* packet_end, |
131 PacketInformation* packet_information); | 132 PacketInformation* packet_information); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 // Time when the report was received. | 239 // Time when the report was received. |
239 NtpTime last_received_xr_ntp_; | 240 NtpTime last_received_xr_ntp_; |
240 // Estimated rtt, zero when there is no valid estimate. | 241 // Estimated rtt, zero when there is no valid estimate. |
241 bool xr_rrtr_status_ GUARDED_BY(rtcp_receiver_lock_); | 242 bool xr_rrtr_status_ GUARDED_BY(rtcp_receiver_lock_); |
242 int64_t xr_rr_rtt_ms_; | 243 int64_t xr_rr_rtt_ms_; |
243 | 244 |
244 // Received report blocks. | 245 // Received report blocks. |
245 ReportBlockMap received_report_blocks_ GUARDED_BY(rtcp_receiver_lock_); | 246 ReportBlockMap received_report_blocks_ GUARDED_BY(rtcp_receiver_lock_); |
246 ReceivedInfoMap received_infos_ GUARDED_BY(rtcp_receiver_lock_); | 247 ReceivedInfoMap received_infos_ GUARDED_BY(rtcp_receiver_lock_); |
247 int64_t oldest_received_info_ms_ GUARDED_BY(rtcp_receiver_lock_); | 248 int64_t oldest_received_info_ms_ GUARDED_BY(rtcp_receiver_lock_); |
| 249 std::map<uint32_t, LastFirStatus> last_fir_ GUARDED_BY(rtcp_receiver_lock_); |
248 std::map<uint32_t, std::string> received_cnames_ | 250 std::map<uint32_t, std::string> received_cnames_ |
249 GUARDED_BY(rtcp_receiver_lock_); | 251 GUARDED_BY(rtcp_receiver_lock_); |
250 | 252 |
251 // The last time we received an RTCP RR. | 253 // The last time we received an RTCP RR. |
252 int64_t last_received_rr_ms_ GUARDED_BY(rtcp_receiver_lock_); | 254 int64_t last_received_rr_ms_ GUARDED_BY(rtcp_receiver_lock_); |
253 | 255 |
254 // The time we last received an RTCP RR telling we have successfully | 256 // The time we last received an RTCP RR telling we have successfully |
255 // delivered RTP packet to the remote side. | 257 // delivered RTP packet to the remote side. |
256 int64_t last_increased_sequence_number_ms_; | 258 int64_t last_increased_sequence_number_ms_; |
257 | 259 |
258 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(feedbacks_lock_); | 260 RtcpStatisticsCallback* stats_callback_ GUARDED_BY(feedbacks_lock_); |
259 | 261 |
260 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; | 262 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; |
261 RtcpPacketTypeCounter packet_type_counter_; | 263 RtcpPacketTypeCounter packet_type_counter_; |
262 | 264 |
263 RtcpNackStats nack_stats_; | 265 RtcpNackStats nack_stats_; |
264 | 266 |
265 size_t num_skipped_packets_; | 267 size_t num_skipped_packets_; |
266 int64_t last_skipped_packets_warning_ms_; | 268 int64_t last_skipped_packets_warning_ms_; |
267 }; | 269 }; |
268 } // namespace webrtc | 270 } // namespace webrtc |
269 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ | 271 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ |
OLD | NEW |