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 |
11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ | 11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ |
12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ | 12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ |
13 | 13 |
14 #include <map> | 14 #include <map> |
15 #include <set> | 15 #include <set> |
16 #include <string> | 16 #include <string> |
17 #include <vector> | 17 #include <vector> |
18 | 18 |
19 #include "webrtc/base/criticalsection.h" | 19 #include "webrtc/base/criticalsection.h" |
20 #include "webrtc/base/thread_annotations.h" | 20 #include "webrtc/base/thread_annotations.h" |
21 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" | 21 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" |
| 22 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/dlrr.h" |
22 #include "webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h" | 23 #include "webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h" |
23 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" | 24 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" |
24 #include "webrtc/typedefs.h" | 25 #include "webrtc/typedefs.h" |
25 | 26 |
26 namespace webrtc { | 27 namespace webrtc { |
27 namespace rtcp { | 28 namespace rtcp { |
28 class CommonHeader; | 29 class CommonHeader; |
29 struct ReceiveTimeInfo; | |
30 class ReportBlock; | 30 class ReportBlock; |
31 class Rrtr; | 31 class Rrtr; |
32 class TmmbItem; | 32 class TmmbItem; |
33 } // namespace rtcp | 33 } // namespace rtcp |
34 | 34 |
35 class RTCPReceiver { | 35 class RTCPReceiver { |
36 public: | 36 public: |
37 class ModuleRtpRtcp { | 37 class ModuleRtpRtcp { |
38 public: | 38 public: |
39 virtual void SetTmmbn(std::vector<rtcp::TmmbItem> bounding_set) = 0; | 39 virtual void SetTmmbn(std::vector<rtcp::TmmbItem> bounding_set) = 0; |
(...skipping 27 matching lines...) Expand all Loading... |
67 // get received cname | 67 // get received cname |
68 int32_t CNAME(uint32_t remoteSSRC, char cName[RTCP_CNAME_SIZE]) const; | 68 int32_t CNAME(uint32_t remoteSSRC, char cName[RTCP_CNAME_SIZE]) const; |
69 | 69 |
70 // get received NTP | 70 // get received NTP |
71 bool NTP(uint32_t* ReceivedNTPsecs, | 71 bool NTP(uint32_t* ReceivedNTPsecs, |
72 uint32_t* ReceivedNTPfrac, | 72 uint32_t* ReceivedNTPfrac, |
73 uint32_t* RTCPArrivalTimeSecs, | 73 uint32_t* RTCPArrivalTimeSecs, |
74 uint32_t* RTCPArrivalTimeFrac, | 74 uint32_t* RTCPArrivalTimeFrac, |
75 uint32_t* rtcp_timestamp) const; | 75 uint32_t* rtcp_timestamp) const; |
76 | 76 |
77 bool LastReceivedXrReferenceTimeInfo(RtcpReceiveTimeInfo* info) const; | 77 bool LastReceivedXrReferenceTimeInfo(rtcp::ReceiveTimeInfo* info) const; |
78 | 78 |
79 // get rtt | 79 // get rtt |
80 int32_t RTT(uint32_t remoteSSRC, | 80 int32_t RTT(uint32_t remoteSSRC, |
81 int64_t* RTT, | 81 int64_t* RTT, |
82 int64_t* avgRTT, | 82 int64_t* avgRTT, |
83 int64_t* minRTT, | 83 int64_t* minRTT, |
84 int64_t* maxRTT) const; | 84 int64_t* maxRTT) const; |
85 | 85 |
86 int32_t SenderInfoReceived(RTCPSenderInfo* senderInfo) const; | 86 int32_t SenderInfoReceived(RTCPSenderInfo* senderInfo) const; |
87 | 87 |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 uint32_t _remoteSSRC GUARDED_BY(_criticalSectionRTCPReceiver); | 226 uint32_t _remoteSSRC GUARDED_BY(_criticalSectionRTCPReceiver); |
227 std::set<uint32_t> registered_ssrcs_ GUARDED_BY(_criticalSectionRTCPReceiver); | 227 std::set<uint32_t> registered_ssrcs_ GUARDED_BY(_criticalSectionRTCPReceiver); |
228 | 228 |
229 // Received send report | 229 // Received send report |
230 RTCPSenderInfo _remoteSenderInfo; | 230 RTCPSenderInfo _remoteSenderInfo; |
231 // when did we receive the last send report | 231 // when did we receive the last send report |
232 uint32_t _lastReceivedSRNTPsecs; | 232 uint32_t _lastReceivedSRNTPsecs; |
233 uint32_t _lastReceivedSRNTPfrac; | 233 uint32_t _lastReceivedSRNTPfrac; |
234 | 234 |
235 // Received XR receive time report. | 235 // Received XR receive time report. |
236 RtcpReceiveTimeInfo _remoteXRReceiveTimeInfo; | 236 rtcp::ReceiveTimeInfo remote_time_info_; |
237 // Time when the report was received. | 237 // Time when the report was received. |
238 uint32_t _lastReceivedXRNTPsecs; | 238 uint32_t _lastReceivedXRNTPsecs; |
239 uint32_t _lastReceivedXRNTPfrac; | 239 uint32_t _lastReceivedXRNTPfrac; |
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(_criticalSectionRTCPReceiver); |
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 _receivedReportBlockMap | 245 ReportBlockMap _receivedReportBlockMap |
246 GUARDED_BY(_criticalSectionRTCPReceiver); | 246 GUARDED_BY(_criticalSectionRTCPReceiver); |
(...skipping 13 matching lines...) Expand all Loading... |
260 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; | 260 RtcpPacketTypeCounterObserver* const packet_type_counter_observer_; |
261 RtcpPacketTypeCounter packet_type_counter_; | 261 RtcpPacketTypeCounter packet_type_counter_; |
262 | 262 |
263 RTCPUtility::NackStats nack_stats_; | 263 RTCPUtility::NackStats nack_stats_; |
264 | 264 |
265 size_t num_skipped_packets_; | 265 size_t num_skipped_packets_; |
266 int64_t last_skipped_packets_warning_; | 266 int64_t last_skipped_packets_warning_; |
267 }; | 267 }; |
268 } // namespace webrtc | 268 } // namespace webrtc |
269 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ | 269 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_ |
OLD | NEW |