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_HELP_H_ | 11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_ |
12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_ | 12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_ |
13 | 13 |
14 #include <list> | 14 #include <list> |
15 #include <map> | 15 #include <map> |
16 #include <memory> | 16 #include <memory> |
17 #include <vector> | 17 #include <vector> |
18 | 18 |
19 #include "webrtc/base/constructormagic.h" | 19 #include "webrtc/base/constructormagic.h" |
20 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" | 20 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" |
21 #include "webrtc/modules/rtp_rtcp/source/tmmbr_help.h" | 21 #include "webrtc/modules/rtp_rtcp/source/tmmbr_help.h" |
22 #include "webrtc/typedefs.h" | 22 #include "webrtc/typedefs.h" |
23 | 23 |
24 namespace webrtc { | 24 namespace webrtc { |
25 namespace rtcp { | 25 namespace rtcp { |
26 class TransportFeedback; | 26 class TransportFeedback; |
27 } | 27 } |
28 namespace RTCPHelp | 28 namespace RTCPHelp { |
29 { | |
30 | 29 |
31 class RTCPReportBlockInformation | 30 class RTCPReportBlockInformation { |
32 { | 31 public: |
33 public: | 32 RTCPReportBlockInformation(); |
34 RTCPReportBlockInformation(); | 33 ~RTCPReportBlockInformation(); |
35 ~RTCPReportBlockInformation(); | |
36 | 34 |
37 // Statistics | 35 // Statistics |
38 RTCPReportBlock remoteReceiveBlock; | 36 RTCPReportBlock remoteReceiveBlock; |
39 uint32_t remoteMaxJitter; | 37 uint32_t remoteMaxJitter; |
40 | 38 |
41 // RTT | 39 // RTT |
42 int64_t RTT; | 40 int64_t RTT; |
43 int64_t minRTT; | 41 int64_t minRTT; |
44 int64_t maxRTT; | 42 int64_t maxRTT; |
45 int64_t avgRTT; | 43 int64_t avgRTT; |
46 uint32_t numAverageCalcs; | 44 uint32_t numAverageCalcs; |
47 }; | 45 }; |
48 | 46 |
49 class RTCPPacketInformation | 47 class RTCPPacketInformation { |
50 { | 48 public: |
51 public: | 49 RTCPPacketInformation(); |
52 RTCPPacketInformation(); | 50 ~RTCPPacketInformation(); |
53 ~RTCPPacketInformation(); | |
54 | 51 |
55 void AddVoIPMetric(const RTCPVoIPMetric* metric); | 52 void AddVoIPMetric(const RTCPVoIPMetric* metric); |
56 | 53 |
57 void AddApplicationData(const uint8_t* data, | 54 void AddApplicationData(const uint8_t* data, const uint16_t size); |
58 const uint16_t size); | |
59 | 55 |
60 void AddNACKPacket(const uint16_t packetID); | 56 void AddNACKPacket(const uint16_t packetID); |
61 void ResetNACKPacketIdArray(); | 57 void ResetNACKPacketIdArray(); |
62 | 58 |
63 void AddReportInfo(const RTCPReportBlockInformation& report_block_info); | 59 void AddReportInfo(const RTCPReportBlockInformation& report_block_info); |
64 | 60 |
65 uint32_t rtcpPacketTypeFlags; // RTCPPacketTypeFlags bit field | 61 uint32_t rtcpPacketTypeFlags; // RTCPPacketTypeFlags bit field |
66 uint32_t remoteSSRC; | 62 uint32_t remoteSSRC; |
67 | 63 |
68 std::list<uint16_t> nackSequenceNumbers; | 64 std::list<uint16_t> nackSequenceNumbers; |
69 | 65 |
70 uint8_t applicationSubType; | 66 uint8_t applicationSubType; |
71 uint32_t applicationName; | 67 uint32_t applicationName; |
72 uint8_t* applicationData; | 68 uint8_t* applicationData; |
73 uint16_t applicationLength; | 69 uint16_t applicationLength; |
74 | 70 |
75 ReportBlockList report_blocks; | 71 ReportBlockList report_blocks; |
76 int64_t rtt; | 72 int64_t rtt; |
77 | 73 |
78 uint32_t interArrivalJitter; | 74 uint32_t interArrivalJitter; |
79 | 75 |
80 uint8_t sliPictureId; | 76 uint8_t sliPictureId; |
81 uint64_t rpsiPictureId; | 77 uint64_t rpsiPictureId; |
82 uint32_t receiverEstimatedMaxBitrate; | 78 uint32_t receiverEstimatedMaxBitrate; |
83 | 79 |
84 uint32_t ntp_secs; | 80 uint32_t ntp_secs; |
85 uint32_t ntp_frac; | 81 uint32_t ntp_frac; |
86 uint32_t rtp_timestamp; | 82 uint32_t rtp_timestamp; |
87 | 83 |
88 uint32_t xr_originator_ssrc; | 84 uint32_t xr_originator_ssrc; |
89 bool xr_dlrr_item; | 85 bool xr_dlrr_item; |
90 std::unique_ptr<RTCPVoIPMetric> VoIPMetric; | 86 std::unique_ptr<RTCPVoIPMetric> VoIPMetric; |
91 | 87 |
92 std::unique_ptr<rtcp::TransportFeedback> transport_feedback_; | 88 std::unique_ptr<rtcp::TransportFeedback> transport_feedback_; |
93 | 89 |
94 private: | 90 private: |
95 RTC_DISALLOW_COPY_AND_ASSIGN(RTCPPacketInformation); | 91 RTC_DISALLOW_COPY_AND_ASSIGN(RTCPPacketInformation); |
96 }; | 92 }; |
97 | 93 |
98 class RTCPReceiveInformation { | 94 class RTCPReceiveInformation { |
99 public: | 95 public: |
100 RTCPReceiveInformation(); | 96 RTCPReceiveInformation(); |
101 ~RTCPReceiveInformation(); | 97 ~RTCPReceiveInformation(); |
102 | 98 |
103 void InsertTmmbrItem(uint32_t sender_ssrc, | 99 void InsertTmmbrItem(uint32_t sender_ssrc, |
104 const rtcp::TmmbItem& tmmbr_item, | 100 const rtcp::TmmbItem& tmmbr_item, |
105 int64_t current_time_ms); | 101 int64_t current_time_ms); |
(...skipping 17 matching lines...) Expand all Loading... |
123 rtcp::TmmbItem tmmbr_item; | 119 rtcp::TmmbItem tmmbr_item; |
124 int64_t last_updated_ms; | 120 int64_t last_updated_ms; |
125 }; | 121 }; |
126 | 122 |
127 std::map<uint32_t, TimedTmmbrItem> tmmbr_; | 123 std::map<uint32_t, TimedTmmbrItem> tmmbr_; |
128 }; | 124 }; |
129 | 125 |
130 } // end namespace RTCPHelp | 126 } // end namespace RTCPHelp |
131 } // namespace webrtc | 127 } // namespace webrtc |
132 | 128 |
133 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_ | 129 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_ |
OLD | NEW |