1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker * Copyright 2016 The WebRTC Project Authors. All rights reserved.
3*d9f75844SAndroid Build Coastguard Worker *
4*d9f75844SAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker * that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker * tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker * in the file PATENTS. All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker * be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker */
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Worker #include "api/stats/rtcstats_objects.h"
12*d9f75844SAndroid Build Coastguard Worker
13*d9f75844SAndroid Build Coastguard Worker #include <utility>
14*d9f75844SAndroid Build Coastguard Worker
15*d9f75844SAndroid Build Coastguard Worker #include "api/stats/rtc_stats.h"
16*d9f75844SAndroid Build Coastguard Worker #include "rtc_base/checks.h"
17*d9f75844SAndroid Build Coastguard Worker
18*d9f75844SAndroid Build Coastguard Worker namespace webrtc {
19*d9f75844SAndroid Build Coastguard Worker
20*d9f75844SAndroid Build Coastguard Worker const char* const RTCDataChannelState::kConnecting = "connecting";
21*d9f75844SAndroid Build Coastguard Worker const char* const RTCDataChannelState::kOpen = "open";
22*d9f75844SAndroid Build Coastguard Worker const char* const RTCDataChannelState::kClosing = "closing";
23*d9f75844SAndroid Build Coastguard Worker const char* const RTCDataChannelState::kClosed = "closed";
24*d9f75844SAndroid Build Coastguard Worker
25*d9f75844SAndroid Build Coastguard Worker const char* const RTCStatsIceCandidatePairState::kFrozen = "frozen";
26*d9f75844SAndroid Build Coastguard Worker const char* const RTCStatsIceCandidatePairState::kWaiting = "waiting";
27*d9f75844SAndroid Build Coastguard Worker const char* const RTCStatsIceCandidatePairState::kInProgress = "in-progress";
28*d9f75844SAndroid Build Coastguard Worker const char* const RTCStatsIceCandidatePairState::kFailed = "failed";
29*d9f75844SAndroid Build Coastguard Worker const char* const RTCStatsIceCandidatePairState::kSucceeded = "succeeded";
30*d9f75844SAndroid Build Coastguard Worker
31*d9f75844SAndroid Build Coastguard Worker // Strings defined in https://tools.ietf.org/html/rfc5245.
32*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceCandidateType::kHost = "host";
33*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceCandidateType::kSrflx = "srflx";
34*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceCandidateType::kPrflx = "prflx";
35*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceCandidateType::kRelay = "relay";
36*d9f75844SAndroid Build Coastguard Worker
37*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsTransportState::kNew = "new";
38*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsTransportState::kConnecting = "connecting";
39*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsTransportState::kConnected = "connected";
40*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsTransportState::kClosed = "closed";
41*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsTransportState::kFailed = "failed";
42*d9f75844SAndroid Build Coastguard Worker
43*d9f75844SAndroid Build Coastguard Worker const char* const RTCMediaStreamTrackKind::kAudio = "audio";
44*d9f75844SAndroid Build Coastguard Worker const char* const RTCMediaStreamTrackKind::kVideo = "video";
45*d9f75844SAndroid Build Coastguard Worker
46*d9f75844SAndroid Build Coastguard Worker // https://w3c.github.io/webrtc-stats/#dom-rtcnetworktype
47*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kBluetooth = "bluetooth";
48*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kCellular = "cellular";
49*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kEthernet = "ethernet";
50*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kWifi = "wifi";
51*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kWimax = "wimax";
52*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kVpn = "vpn";
53*d9f75844SAndroid Build Coastguard Worker const char* const RTCNetworkType::kUnknown = "unknown";
54*d9f75844SAndroid Build Coastguard Worker
55*d9f75844SAndroid Build Coastguard Worker // https://w3c.github.io/webrtc-stats/#dom-rtcqualitylimitationreason
56*d9f75844SAndroid Build Coastguard Worker const char* const RTCQualityLimitationReason::kNone = "none";
57*d9f75844SAndroid Build Coastguard Worker const char* const RTCQualityLimitationReason::kCpu = "cpu";
58*d9f75844SAndroid Build Coastguard Worker const char* const RTCQualityLimitationReason::kBandwidth = "bandwidth";
59*d9f75844SAndroid Build Coastguard Worker const char* const RTCQualityLimitationReason::kOther = "other";
60*d9f75844SAndroid Build Coastguard Worker
61*d9f75844SAndroid Build Coastguard Worker // https://webrtc.org/experiments/rtp-hdrext/video-content-type/
62*d9f75844SAndroid Build Coastguard Worker const char* const RTCContentType::kUnspecified = "unspecified";
63*d9f75844SAndroid Build Coastguard Worker const char* const RTCContentType::kScreenshare = "screenshare";
64*d9f75844SAndroid Build Coastguard Worker
65*d9f75844SAndroid Build Coastguard Worker // https://w3c.github.io/webrtc-stats/#dom-rtcdtlsrole
66*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsRole::kUnknown = "unknown";
67*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsRole::kClient = "client";
68*d9f75844SAndroid Build Coastguard Worker const char* const RTCDtlsRole::kServer = "server";
69*d9f75844SAndroid Build Coastguard Worker
70*d9f75844SAndroid Build Coastguard Worker // https://www.w3.org/TR/webrtc/#rtcicerole
71*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceRole::kUnknown = "unknown";
72*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceRole::kControlled = "controlled";
73*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceRole::kControlling = "controlling";
74*d9f75844SAndroid Build Coastguard Worker
75*d9f75844SAndroid Build Coastguard Worker // https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate
76*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kNew = "new";
77*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kChecking = "checking";
78*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kConnected = "connected";
79*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kCompleted = "completed";
80*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kDisconnected = "disconnected";
81*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kFailed = "failed";
82*d9f75844SAndroid Build Coastguard Worker const char* const RTCIceTransportState::kClosed = "closed";
83*d9f75844SAndroid Build Coastguard Worker
84*d9f75844SAndroid Build Coastguard Worker // clang-format off
85*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCCertificateStats, RTCStats, "certificate",
86*d9f75844SAndroid Build Coastguard Worker &fingerprint,
87*d9f75844SAndroid Build Coastguard Worker &fingerprint_algorithm,
88*d9f75844SAndroid Build Coastguard Worker &base64_certificate,
89*d9f75844SAndroid Build Coastguard Worker &issuer_certificate_id)
90*d9f75844SAndroid Build Coastguard Worker // clang-format on
91*d9f75844SAndroid Build Coastguard Worker
RTCCertificateStats(const std::string & id,int64_t timestamp_us)92*d9f75844SAndroid Build Coastguard Worker RTCCertificateStats::RTCCertificateStats(const std::string& id,
93*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
94*d9f75844SAndroid Build Coastguard Worker : RTCCertificateStats(std::string(id), timestamp_us) {}
95*d9f75844SAndroid Build Coastguard Worker
RTCCertificateStats(std::string && id,int64_t timestamp_us)96*d9f75844SAndroid Build Coastguard Worker RTCCertificateStats::RTCCertificateStats(std::string&& id, int64_t timestamp_us)
97*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
98*d9f75844SAndroid Build Coastguard Worker fingerprint("fingerprint"),
99*d9f75844SAndroid Build Coastguard Worker fingerprint_algorithm("fingerprintAlgorithm"),
100*d9f75844SAndroid Build Coastguard Worker base64_certificate("base64Certificate"),
101*d9f75844SAndroid Build Coastguard Worker issuer_certificate_id("issuerCertificateId") {}
102*d9f75844SAndroid Build Coastguard Worker
103*d9f75844SAndroid Build Coastguard Worker RTCCertificateStats::RTCCertificateStats(const RTCCertificateStats& other) =
104*d9f75844SAndroid Build Coastguard Worker default;
~RTCCertificateStats()105*d9f75844SAndroid Build Coastguard Worker RTCCertificateStats::~RTCCertificateStats() {}
106*d9f75844SAndroid Build Coastguard Worker
107*d9f75844SAndroid Build Coastguard Worker // clang-format off
108*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCCodecStats, RTCStats, "codec",
109*d9f75844SAndroid Build Coastguard Worker &transport_id,
110*d9f75844SAndroid Build Coastguard Worker &payload_type,
111*d9f75844SAndroid Build Coastguard Worker &mime_type,
112*d9f75844SAndroid Build Coastguard Worker &clock_rate,
113*d9f75844SAndroid Build Coastguard Worker &channels,
114*d9f75844SAndroid Build Coastguard Worker &sdp_fmtp_line)
115*d9f75844SAndroid Build Coastguard Worker // clang-format on
116*d9f75844SAndroid Build Coastguard Worker
RTCCodecStats(const std::string & id,int64_t timestamp_us)117*d9f75844SAndroid Build Coastguard Worker RTCCodecStats::RTCCodecStats(const std::string& id, int64_t timestamp_us)
118*d9f75844SAndroid Build Coastguard Worker : RTCCodecStats(std::string(id), timestamp_us) {}
119*d9f75844SAndroid Build Coastguard Worker
RTCCodecStats(std::string && id,int64_t timestamp_us)120*d9f75844SAndroid Build Coastguard Worker RTCCodecStats::RTCCodecStats(std::string&& id, int64_t timestamp_us)
121*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
122*d9f75844SAndroid Build Coastguard Worker transport_id("transportId"),
123*d9f75844SAndroid Build Coastguard Worker payload_type("payloadType"),
124*d9f75844SAndroid Build Coastguard Worker mime_type("mimeType"),
125*d9f75844SAndroid Build Coastguard Worker clock_rate("clockRate"),
126*d9f75844SAndroid Build Coastguard Worker channels("channels"),
127*d9f75844SAndroid Build Coastguard Worker sdp_fmtp_line("sdpFmtpLine") {}
128*d9f75844SAndroid Build Coastguard Worker
129*d9f75844SAndroid Build Coastguard Worker RTCCodecStats::RTCCodecStats(const RTCCodecStats& other) = default;
130*d9f75844SAndroid Build Coastguard Worker
~RTCCodecStats()131*d9f75844SAndroid Build Coastguard Worker RTCCodecStats::~RTCCodecStats() {}
132*d9f75844SAndroid Build Coastguard Worker
133*d9f75844SAndroid Build Coastguard Worker // clang-format off
134*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCDataChannelStats, RTCStats, "data-channel",
135*d9f75844SAndroid Build Coastguard Worker &label,
136*d9f75844SAndroid Build Coastguard Worker &protocol,
137*d9f75844SAndroid Build Coastguard Worker &data_channel_identifier,
138*d9f75844SAndroid Build Coastguard Worker &state,
139*d9f75844SAndroid Build Coastguard Worker &messages_sent,
140*d9f75844SAndroid Build Coastguard Worker &bytes_sent,
141*d9f75844SAndroid Build Coastguard Worker &messages_received,
142*d9f75844SAndroid Build Coastguard Worker &bytes_received)
143*d9f75844SAndroid Build Coastguard Worker // clang-format on
144*d9f75844SAndroid Build Coastguard Worker
RTCDataChannelStats(const std::string & id,int64_t timestamp_us)145*d9f75844SAndroid Build Coastguard Worker RTCDataChannelStats::RTCDataChannelStats(const std::string& id,
146*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
147*d9f75844SAndroid Build Coastguard Worker : RTCDataChannelStats(std::string(id), timestamp_us) {}
148*d9f75844SAndroid Build Coastguard Worker
RTCDataChannelStats(std::string && id,int64_t timestamp_us)149*d9f75844SAndroid Build Coastguard Worker RTCDataChannelStats::RTCDataChannelStats(std::string&& id, int64_t timestamp_us)
150*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
151*d9f75844SAndroid Build Coastguard Worker label("label"),
152*d9f75844SAndroid Build Coastguard Worker protocol("protocol"),
153*d9f75844SAndroid Build Coastguard Worker data_channel_identifier("dataChannelIdentifier"),
154*d9f75844SAndroid Build Coastguard Worker state("state"),
155*d9f75844SAndroid Build Coastguard Worker messages_sent("messagesSent"),
156*d9f75844SAndroid Build Coastguard Worker bytes_sent("bytesSent"),
157*d9f75844SAndroid Build Coastguard Worker messages_received("messagesReceived"),
158*d9f75844SAndroid Build Coastguard Worker bytes_received("bytesReceived") {}
159*d9f75844SAndroid Build Coastguard Worker
160*d9f75844SAndroid Build Coastguard Worker RTCDataChannelStats::RTCDataChannelStats(const RTCDataChannelStats& other) =
161*d9f75844SAndroid Build Coastguard Worker default;
162*d9f75844SAndroid Build Coastguard Worker
~RTCDataChannelStats()163*d9f75844SAndroid Build Coastguard Worker RTCDataChannelStats::~RTCDataChannelStats() {}
164*d9f75844SAndroid Build Coastguard Worker
165*d9f75844SAndroid Build Coastguard Worker // clang-format off
166*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCIceCandidatePairStats, RTCStats, "candidate-pair",
167*d9f75844SAndroid Build Coastguard Worker &transport_id,
168*d9f75844SAndroid Build Coastguard Worker &local_candidate_id,
169*d9f75844SAndroid Build Coastguard Worker &remote_candidate_id,
170*d9f75844SAndroid Build Coastguard Worker &state,
171*d9f75844SAndroid Build Coastguard Worker &priority,
172*d9f75844SAndroid Build Coastguard Worker &nominated,
173*d9f75844SAndroid Build Coastguard Worker &writable,
174*d9f75844SAndroid Build Coastguard Worker &packets_sent,
175*d9f75844SAndroid Build Coastguard Worker &packets_received,
176*d9f75844SAndroid Build Coastguard Worker &bytes_sent,
177*d9f75844SAndroid Build Coastguard Worker &bytes_received,
178*d9f75844SAndroid Build Coastguard Worker &total_round_trip_time,
179*d9f75844SAndroid Build Coastguard Worker ¤t_round_trip_time,
180*d9f75844SAndroid Build Coastguard Worker &available_outgoing_bitrate,
181*d9f75844SAndroid Build Coastguard Worker &available_incoming_bitrate,
182*d9f75844SAndroid Build Coastguard Worker &requests_received,
183*d9f75844SAndroid Build Coastguard Worker &requests_sent,
184*d9f75844SAndroid Build Coastguard Worker &responses_received,
185*d9f75844SAndroid Build Coastguard Worker &responses_sent,
186*d9f75844SAndroid Build Coastguard Worker &consent_requests_sent,
187*d9f75844SAndroid Build Coastguard Worker &packets_discarded_on_send,
188*d9f75844SAndroid Build Coastguard Worker &bytes_discarded_on_send,
189*d9f75844SAndroid Build Coastguard Worker &last_packet_received_timestamp,
190*d9f75844SAndroid Build Coastguard Worker &last_packet_sent_timestamp)
191*d9f75844SAndroid Build Coastguard Worker // clang-format on
192*d9f75844SAndroid Build Coastguard Worker
RTCIceCandidatePairStats(const std::string & id,int64_t timestamp_us)193*d9f75844SAndroid Build Coastguard Worker RTCIceCandidatePairStats::RTCIceCandidatePairStats(const std::string& id,
194*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
195*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidatePairStats(std::string(id), timestamp_us) {}
196*d9f75844SAndroid Build Coastguard Worker
RTCIceCandidatePairStats(std::string && id,int64_t timestamp_us)197*d9f75844SAndroid Build Coastguard Worker RTCIceCandidatePairStats::RTCIceCandidatePairStats(std::string&& id,
198*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
199*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
200*d9f75844SAndroid Build Coastguard Worker transport_id("transportId"),
201*d9f75844SAndroid Build Coastguard Worker local_candidate_id("localCandidateId"),
202*d9f75844SAndroid Build Coastguard Worker remote_candidate_id("remoteCandidateId"),
203*d9f75844SAndroid Build Coastguard Worker state("state"),
204*d9f75844SAndroid Build Coastguard Worker priority("priority"),
205*d9f75844SAndroid Build Coastguard Worker nominated("nominated"),
206*d9f75844SAndroid Build Coastguard Worker writable("writable"),
207*d9f75844SAndroid Build Coastguard Worker packets_sent("packetsSent"),
208*d9f75844SAndroid Build Coastguard Worker packets_received("packetsReceived"),
209*d9f75844SAndroid Build Coastguard Worker bytes_sent("bytesSent"),
210*d9f75844SAndroid Build Coastguard Worker bytes_received("bytesReceived"),
211*d9f75844SAndroid Build Coastguard Worker total_round_trip_time("totalRoundTripTime"),
212*d9f75844SAndroid Build Coastguard Worker current_round_trip_time("currentRoundTripTime"),
213*d9f75844SAndroid Build Coastguard Worker available_outgoing_bitrate("availableOutgoingBitrate"),
214*d9f75844SAndroid Build Coastguard Worker available_incoming_bitrate("availableIncomingBitrate"),
215*d9f75844SAndroid Build Coastguard Worker requests_received("requestsReceived"),
216*d9f75844SAndroid Build Coastguard Worker requests_sent("requestsSent"),
217*d9f75844SAndroid Build Coastguard Worker responses_received("responsesReceived"),
218*d9f75844SAndroid Build Coastguard Worker responses_sent("responsesSent"),
219*d9f75844SAndroid Build Coastguard Worker consent_requests_sent("consentRequestsSent"),
220*d9f75844SAndroid Build Coastguard Worker packets_discarded_on_send("packetsDiscardedOnSend"),
221*d9f75844SAndroid Build Coastguard Worker bytes_discarded_on_send("bytesDiscardedOnSend"),
222*d9f75844SAndroid Build Coastguard Worker last_packet_received_timestamp("lastPacketReceivedTimestamp"),
223*d9f75844SAndroid Build Coastguard Worker last_packet_sent_timestamp("lastPacketSentTimestamp") {}
224*d9f75844SAndroid Build Coastguard Worker
225*d9f75844SAndroid Build Coastguard Worker RTCIceCandidatePairStats::RTCIceCandidatePairStats(
226*d9f75844SAndroid Build Coastguard Worker const RTCIceCandidatePairStats& other) = default;
227*d9f75844SAndroid Build Coastguard Worker
~RTCIceCandidatePairStats()228*d9f75844SAndroid Build Coastguard Worker RTCIceCandidatePairStats::~RTCIceCandidatePairStats() {}
229*d9f75844SAndroid Build Coastguard Worker
230*d9f75844SAndroid Build Coastguard Worker // clang-format off
231*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCIceCandidateStats, RTCStats, "abstract-ice-candidate",
232*d9f75844SAndroid Build Coastguard Worker &transport_id,
233*d9f75844SAndroid Build Coastguard Worker &is_remote,
234*d9f75844SAndroid Build Coastguard Worker &network_type,
235*d9f75844SAndroid Build Coastguard Worker &ip,
236*d9f75844SAndroid Build Coastguard Worker &address,
237*d9f75844SAndroid Build Coastguard Worker &port,
238*d9f75844SAndroid Build Coastguard Worker &protocol,
239*d9f75844SAndroid Build Coastguard Worker &relay_protocol,
240*d9f75844SAndroid Build Coastguard Worker &candidate_type,
241*d9f75844SAndroid Build Coastguard Worker &priority,
242*d9f75844SAndroid Build Coastguard Worker &url,
243*d9f75844SAndroid Build Coastguard Worker &foundation,
244*d9f75844SAndroid Build Coastguard Worker &related_address,
245*d9f75844SAndroid Build Coastguard Worker &related_port,
246*d9f75844SAndroid Build Coastguard Worker &username_fragment,
247*d9f75844SAndroid Build Coastguard Worker &tcp_type,
248*d9f75844SAndroid Build Coastguard Worker &vpn,
249*d9f75844SAndroid Build Coastguard Worker &network_adapter_type)
250*d9f75844SAndroid Build Coastguard Worker // clang-format on
251*d9f75844SAndroid Build Coastguard Worker
RTCIceCandidateStats(const std::string & id,int64_t timestamp_us,bool is_remote)252*d9f75844SAndroid Build Coastguard Worker RTCIceCandidateStats::RTCIceCandidateStats(const std::string& id,
253*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us,
254*d9f75844SAndroid Build Coastguard Worker bool is_remote)
255*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidateStats(std::string(id), timestamp_us, is_remote) {}
256*d9f75844SAndroid Build Coastguard Worker
RTCIceCandidateStats(std::string && id,int64_t timestamp_us,bool is_remote)257*d9f75844SAndroid Build Coastguard Worker RTCIceCandidateStats::RTCIceCandidateStats(std::string&& id,
258*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us,
259*d9f75844SAndroid Build Coastguard Worker bool is_remote)
260*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
261*d9f75844SAndroid Build Coastguard Worker transport_id("transportId"),
262*d9f75844SAndroid Build Coastguard Worker is_remote("isRemote", is_remote),
263*d9f75844SAndroid Build Coastguard Worker network_type("networkType"),
264*d9f75844SAndroid Build Coastguard Worker ip("ip"),
265*d9f75844SAndroid Build Coastguard Worker address("address"),
266*d9f75844SAndroid Build Coastguard Worker port("port"),
267*d9f75844SAndroid Build Coastguard Worker protocol("protocol"),
268*d9f75844SAndroid Build Coastguard Worker relay_protocol("relayProtocol"),
269*d9f75844SAndroid Build Coastguard Worker candidate_type("candidateType"),
270*d9f75844SAndroid Build Coastguard Worker priority("priority"),
271*d9f75844SAndroid Build Coastguard Worker url("url"),
272*d9f75844SAndroid Build Coastguard Worker foundation("foundation"),
273*d9f75844SAndroid Build Coastguard Worker related_address("relatedAddress"),
274*d9f75844SAndroid Build Coastguard Worker related_port("relatedPort"),
275*d9f75844SAndroid Build Coastguard Worker username_fragment("usernameFragment"),
276*d9f75844SAndroid Build Coastguard Worker tcp_type("tcpType"),
277*d9f75844SAndroid Build Coastguard Worker vpn("vpn"),
278*d9f75844SAndroid Build Coastguard Worker network_adapter_type("networkAdapterType") {}
279*d9f75844SAndroid Build Coastguard Worker
280*d9f75844SAndroid Build Coastguard Worker RTCIceCandidateStats::RTCIceCandidateStats(const RTCIceCandidateStats& other) =
281*d9f75844SAndroid Build Coastguard Worker default;
282*d9f75844SAndroid Build Coastguard Worker
~RTCIceCandidateStats()283*d9f75844SAndroid Build Coastguard Worker RTCIceCandidateStats::~RTCIceCandidateStats() {}
284*d9f75844SAndroid Build Coastguard Worker
285*d9f75844SAndroid Build Coastguard Worker const char RTCLocalIceCandidateStats::kType[] = "local-candidate";
286*d9f75844SAndroid Build Coastguard Worker
RTCLocalIceCandidateStats(const std::string & id,int64_t timestamp_us)287*d9f75844SAndroid Build Coastguard Worker RTCLocalIceCandidateStats::RTCLocalIceCandidateStats(const std::string& id,
288*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
289*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidateStats(id, timestamp_us, false) {}
290*d9f75844SAndroid Build Coastguard Worker
RTCLocalIceCandidateStats(std::string && id,int64_t timestamp_us)291*d9f75844SAndroid Build Coastguard Worker RTCLocalIceCandidateStats::RTCLocalIceCandidateStats(std::string&& id,
292*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
293*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidateStats(std::move(id), timestamp_us, false) {}
294*d9f75844SAndroid Build Coastguard Worker
copy() const295*d9f75844SAndroid Build Coastguard Worker std::unique_ptr<RTCStats> RTCLocalIceCandidateStats::copy() const {
296*d9f75844SAndroid Build Coastguard Worker return std::make_unique<RTCLocalIceCandidateStats>(*this);
297*d9f75844SAndroid Build Coastguard Worker }
298*d9f75844SAndroid Build Coastguard Worker
type() const299*d9f75844SAndroid Build Coastguard Worker const char* RTCLocalIceCandidateStats::type() const {
300*d9f75844SAndroid Build Coastguard Worker return kType;
301*d9f75844SAndroid Build Coastguard Worker }
302*d9f75844SAndroid Build Coastguard Worker
303*d9f75844SAndroid Build Coastguard Worker const char RTCRemoteIceCandidateStats::kType[] = "remote-candidate";
304*d9f75844SAndroid Build Coastguard Worker
RTCRemoteIceCandidateStats(const std::string & id,int64_t timestamp_us)305*d9f75844SAndroid Build Coastguard Worker RTCRemoteIceCandidateStats::RTCRemoteIceCandidateStats(const std::string& id,
306*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
307*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidateStats(id, timestamp_us, true) {}
308*d9f75844SAndroid Build Coastguard Worker
RTCRemoteIceCandidateStats(std::string && id,int64_t timestamp_us)309*d9f75844SAndroid Build Coastguard Worker RTCRemoteIceCandidateStats::RTCRemoteIceCandidateStats(std::string&& id,
310*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
311*d9f75844SAndroid Build Coastguard Worker : RTCIceCandidateStats(std::move(id), timestamp_us, true) {}
312*d9f75844SAndroid Build Coastguard Worker
copy() const313*d9f75844SAndroid Build Coastguard Worker std::unique_ptr<RTCStats> RTCRemoteIceCandidateStats::copy() const {
314*d9f75844SAndroid Build Coastguard Worker return std::make_unique<RTCRemoteIceCandidateStats>(*this);
315*d9f75844SAndroid Build Coastguard Worker }
316*d9f75844SAndroid Build Coastguard Worker
type() const317*d9f75844SAndroid Build Coastguard Worker const char* RTCRemoteIceCandidateStats::type() const {
318*d9f75844SAndroid Build Coastguard Worker return kType;
319*d9f75844SAndroid Build Coastguard Worker }
320*d9f75844SAndroid Build Coastguard Worker
321*d9f75844SAndroid Build Coastguard Worker // clang-format off
322*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(DEPRECATED_RTCMediaStreamStats, RTCStats, "stream",
323*d9f75844SAndroid Build Coastguard Worker &stream_identifier,
324*d9f75844SAndroid Build Coastguard Worker &track_ids)
325*d9f75844SAndroid Build Coastguard Worker // clang-format on
326*d9f75844SAndroid Build Coastguard Worker
DEPRECATED_RTCMediaStreamStats(const std::string & id,int64_t timestamp_us)327*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats(
328*d9f75844SAndroid Build Coastguard Worker const std::string& id,
329*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
330*d9f75844SAndroid Build Coastguard Worker : DEPRECATED_RTCMediaStreamStats(std::string(id), timestamp_us) {}
331*d9f75844SAndroid Build Coastguard Worker
DEPRECATED_RTCMediaStreamStats(std::string && id,int64_t timestamp_us)332*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats(
333*d9f75844SAndroid Build Coastguard Worker std::string&& id,
334*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
335*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
336*d9f75844SAndroid Build Coastguard Worker stream_identifier("streamIdentifier"),
337*d9f75844SAndroid Build Coastguard Worker track_ids("trackIds") {}
338*d9f75844SAndroid Build Coastguard Worker
339*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats(
340*d9f75844SAndroid Build Coastguard Worker const DEPRECATED_RTCMediaStreamStats& other) = default;
341*d9f75844SAndroid Build Coastguard Worker
~DEPRECATED_RTCMediaStreamStats()342*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamStats::~DEPRECATED_RTCMediaStreamStats() {}
343*d9f75844SAndroid Build Coastguard Worker
344*d9f75844SAndroid Build Coastguard Worker // clang-format off
345*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(DEPRECATED_RTCMediaStreamTrackStats, RTCStats, "track",
346*d9f75844SAndroid Build Coastguard Worker &track_identifier,
347*d9f75844SAndroid Build Coastguard Worker &media_source_id,
348*d9f75844SAndroid Build Coastguard Worker &remote_source,
349*d9f75844SAndroid Build Coastguard Worker &ended,
350*d9f75844SAndroid Build Coastguard Worker &detached,
351*d9f75844SAndroid Build Coastguard Worker &kind,
352*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_delay,
353*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_emitted_count,
354*d9f75844SAndroid Build Coastguard Worker &frame_width,
355*d9f75844SAndroid Build Coastguard Worker &frame_height,
356*d9f75844SAndroid Build Coastguard Worker &frames_sent,
357*d9f75844SAndroid Build Coastguard Worker &huge_frames_sent,
358*d9f75844SAndroid Build Coastguard Worker &frames_received,
359*d9f75844SAndroid Build Coastguard Worker &frames_decoded,
360*d9f75844SAndroid Build Coastguard Worker &frames_dropped,
361*d9f75844SAndroid Build Coastguard Worker &audio_level,
362*d9f75844SAndroid Build Coastguard Worker &total_audio_energy,
363*d9f75844SAndroid Build Coastguard Worker &echo_return_loss,
364*d9f75844SAndroid Build Coastguard Worker &echo_return_loss_enhancement,
365*d9f75844SAndroid Build Coastguard Worker &total_samples_received,
366*d9f75844SAndroid Build Coastguard Worker &total_samples_duration,
367*d9f75844SAndroid Build Coastguard Worker &concealed_samples,
368*d9f75844SAndroid Build Coastguard Worker &silent_concealed_samples,
369*d9f75844SAndroid Build Coastguard Worker &concealment_events,
370*d9f75844SAndroid Build Coastguard Worker &inserted_samples_for_deceleration,
371*d9f75844SAndroid Build Coastguard Worker &removed_samples_for_acceleration)
372*d9f75844SAndroid Build Coastguard Worker // clang-format on
373*d9f75844SAndroid Build Coastguard Worker
DEPRECATED_RTCMediaStreamTrackStats(const std::string & id,int64_t timestamp_us,const char * kind)374*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats(
375*d9f75844SAndroid Build Coastguard Worker const std::string& id,
376*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us,
377*d9f75844SAndroid Build Coastguard Worker const char* kind)
378*d9f75844SAndroid Build Coastguard Worker : DEPRECATED_RTCMediaStreamTrackStats(std::string(id), timestamp_us, kind) {
379*d9f75844SAndroid Build Coastguard Worker }
380*d9f75844SAndroid Build Coastguard Worker
DEPRECATED_RTCMediaStreamTrackStats(std::string && id,int64_t timestamp_us,const char * kind)381*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats(
382*d9f75844SAndroid Build Coastguard Worker std::string&& id,
383*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us,
384*d9f75844SAndroid Build Coastguard Worker const char* kind)
385*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
386*d9f75844SAndroid Build Coastguard Worker track_identifier("trackIdentifier"),
387*d9f75844SAndroid Build Coastguard Worker media_source_id("mediaSourceId"),
388*d9f75844SAndroid Build Coastguard Worker remote_source("remoteSource"),
389*d9f75844SAndroid Build Coastguard Worker ended("ended"),
390*d9f75844SAndroid Build Coastguard Worker detached("detached"),
391*d9f75844SAndroid Build Coastguard Worker kind("kind", kind),
392*d9f75844SAndroid Build Coastguard Worker jitter_buffer_delay("jitterBufferDelay"),
393*d9f75844SAndroid Build Coastguard Worker jitter_buffer_emitted_count("jitterBufferEmittedCount"),
394*d9f75844SAndroid Build Coastguard Worker frame_width("frameWidth"),
395*d9f75844SAndroid Build Coastguard Worker frame_height("frameHeight"),
396*d9f75844SAndroid Build Coastguard Worker frames_sent("framesSent"),
397*d9f75844SAndroid Build Coastguard Worker huge_frames_sent("hugeFramesSent"),
398*d9f75844SAndroid Build Coastguard Worker frames_received("framesReceived"),
399*d9f75844SAndroid Build Coastguard Worker frames_decoded("framesDecoded"),
400*d9f75844SAndroid Build Coastguard Worker frames_dropped("framesDropped"),
401*d9f75844SAndroid Build Coastguard Worker audio_level("audioLevel"),
402*d9f75844SAndroid Build Coastguard Worker total_audio_energy("totalAudioEnergy"),
403*d9f75844SAndroid Build Coastguard Worker echo_return_loss("echoReturnLoss"),
404*d9f75844SAndroid Build Coastguard Worker echo_return_loss_enhancement("echoReturnLossEnhancement"),
405*d9f75844SAndroid Build Coastguard Worker total_samples_received("totalSamplesReceived"),
406*d9f75844SAndroid Build Coastguard Worker total_samples_duration("totalSamplesDuration"),
407*d9f75844SAndroid Build Coastguard Worker concealed_samples("concealedSamples"),
408*d9f75844SAndroid Build Coastguard Worker silent_concealed_samples("silentConcealedSamples"),
409*d9f75844SAndroid Build Coastguard Worker concealment_events("concealmentEvents"),
410*d9f75844SAndroid Build Coastguard Worker inserted_samples_for_deceleration("insertedSamplesForDeceleration"),
411*d9f75844SAndroid Build Coastguard Worker removed_samples_for_acceleration("removedSamplesForAcceleration") {
412*d9f75844SAndroid Build Coastguard Worker RTC_DCHECK(kind == RTCMediaStreamTrackKind::kAudio ||
413*d9f75844SAndroid Build Coastguard Worker kind == RTCMediaStreamTrackKind::kVideo);
414*d9f75844SAndroid Build Coastguard Worker }
415*d9f75844SAndroid Build Coastguard Worker
416*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats(
417*d9f75844SAndroid Build Coastguard Worker const DEPRECATED_RTCMediaStreamTrackStats& other) = default;
418*d9f75844SAndroid Build Coastguard Worker
~DEPRECATED_RTCMediaStreamTrackStats()419*d9f75844SAndroid Build Coastguard Worker DEPRECATED_RTCMediaStreamTrackStats::~DEPRECATED_RTCMediaStreamTrackStats() {}
420*d9f75844SAndroid Build Coastguard Worker
421*d9f75844SAndroid Build Coastguard Worker // clang-format off
422*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCPeerConnectionStats, RTCStats, "peer-connection",
423*d9f75844SAndroid Build Coastguard Worker &data_channels_opened,
424*d9f75844SAndroid Build Coastguard Worker &data_channels_closed)
425*d9f75844SAndroid Build Coastguard Worker // clang-format on
426*d9f75844SAndroid Build Coastguard Worker
RTCPeerConnectionStats(const std::string & id,int64_t timestamp_us)427*d9f75844SAndroid Build Coastguard Worker RTCPeerConnectionStats::RTCPeerConnectionStats(const std::string& id,
428*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
429*d9f75844SAndroid Build Coastguard Worker : RTCPeerConnectionStats(std::string(id), timestamp_us) {}
430*d9f75844SAndroid Build Coastguard Worker
RTCPeerConnectionStats(std::string && id,int64_t timestamp_us)431*d9f75844SAndroid Build Coastguard Worker RTCPeerConnectionStats::RTCPeerConnectionStats(std::string&& id,
432*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
433*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
434*d9f75844SAndroid Build Coastguard Worker data_channels_opened("dataChannelsOpened"),
435*d9f75844SAndroid Build Coastguard Worker data_channels_closed("dataChannelsClosed") {}
436*d9f75844SAndroid Build Coastguard Worker
437*d9f75844SAndroid Build Coastguard Worker RTCPeerConnectionStats::RTCPeerConnectionStats(
438*d9f75844SAndroid Build Coastguard Worker const RTCPeerConnectionStats& other) = default;
439*d9f75844SAndroid Build Coastguard Worker
~RTCPeerConnectionStats()440*d9f75844SAndroid Build Coastguard Worker RTCPeerConnectionStats::~RTCPeerConnectionStats() {}
441*d9f75844SAndroid Build Coastguard Worker
442*d9f75844SAndroid Build Coastguard Worker // clang-format off
443*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCRTPStreamStats, RTCStats, "rtp",
444*d9f75844SAndroid Build Coastguard Worker &ssrc,
445*d9f75844SAndroid Build Coastguard Worker &kind,
446*d9f75844SAndroid Build Coastguard Worker &track_id,
447*d9f75844SAndroid Build Coastguard Worker &transport_id,
448*d9f75844SAndroid Build Coastguard Worker &codec_id,
449*d9f75844SAndroid Build Coastguard Worker &media_type)
450*d9f75844SAndroid Build Coastguard Worker // clang-format on
451*d9f75844SAndroid Build Coastguard Worker
RTCRTPStreamStats(const std::string & id,int64_t timestamp_us)452*d9f75844SAndroid Build Coastguard Worker RTCRTPStreamStats::RTCRTPStreamStats(const std::string& id,
453*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
454*d9f75844SAndroid Build Coastguard Worker : RTCRTPStreamStats(std::string(id), timestamp_us) {}
455*d9f75844SAndroid Build Coastguard Worker
RTCRTPStreamStats(std::string && id,int64_t timestamp_us)456*d9f75844SAndroid Build Coastguard Worker RTCRTPStreamStats::RTCRTPStreamStats(std::string&& id, int64_t timestamp_us)
457*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
458*d9f75844SAndroid Build Coastguard Worker ssrc("ssrc"),
459*d9f75844SAndroid Build Coastguard Worker kind("kind"),
460*d9f75844SAndroid Build Coastguard Worker track_id("trackId"),
461*d9f75844SAndroid Build Coastguard Worker transport_id("transportId"),
462*d9f75844SAndroid Build Coastguard Worker codec_id("codecId"),
463*d9f75844SAndroid Build Coastguard Worker media_type("mediaType") {}
464*d9f75844SAndroid Build Coastguard Worker
465*d9f75844SAndroid Build Coastguard Worker RTCRTPStreamStats::RTCRTPStreamStats(const RTCRTPStreamStats& other) = default;
466*d9f75844SAndroid Build Coastguard Worker
~RTCRTPStreamStats()467*d9f75844SAndroid Build Coastguard Worker RTCRTPStreamStats::~RTCRTPStreamStats() {}
468*d9f75844SAndroid Build Coastguard Worker
469*d9f75844SAndroid Build Coastguard Worker // clang-format off
470*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
471*d9f75844SAndroid Build Coastguard Worker RTCReceivedRtpStreamStats, RTCRTPStreamStats, "received-rtp",
472*d9f75844SAndroid Build Coastguard Worker &jitter,
473*d9f75844SAndroid Build Coastguard Worker &packets_lost)
474*d9f75844SAndroid Build Coastguard Worker // clang-format on
475*d9f75844SAndroid Build Coastguard Worker
RTCReceivedRtpStreamStats(const std::string && id,int64_t timestamp_us)476*d9f75844SAndroid Build Coastguard Worker RTCReceivedRtpStreamStats::RTCReceivedRtpStreamStats(const std::string&& id,
477*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
478*d9f75844SAndroid Build Coastguard Worker : RTCReceivedRtpStreamStats(std::string(id), timestamp_us) {}
479*d9f75844SAndroid Build Coastguard Worker
RTCReceivedRtpStreamStats(std::string && id,int64_t timestamp_us)480*d9f75844SAndroid Build Coastguard Worker RTCReceivedRtpStreamStats::RTCReceivedRtpStreamStats(std::string&& id,
481*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
482*d9f75844SAndroid Build Coastguard Worker : RTCRTPStreamStats(std::move(id), timestamp_us),
483*d9f75844SAndroid Build Coastguard Worker jitter("jitter"),
484*d9f75844SAndroid Build Coastguard Worker packets_lost("packetsLost") {}
485*d9f75844SAndroid Build Coastguard Worker
486*d9f75844SAndroid Build Coastguard Worker RTCReceivedRtpStreamStats::RTCReceivedRtpStreamStats(
487*d9f75844SAndroid Build Coastguard Worker const RTCReceivedRtpStreamStats& other) = default;
488*d9f75844SAndroid Build Coastguard Worker
~RTCReceivedRtpStreamStats()489*d9f75844SAndroid Build Coastguard Worker RTCReceivedRtpStreamStats::~RTCReceivedRtpStreamStats() {}
490*d9f75844SAndroid Build Coastguard Worker
491*d9f75844SAndroid Build Coastguard Worker // clang-format off
492*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
493*d9f75844SAndroid Build Coastguard Worker RTCSentRtpStreamStats, RTCRTPStreamStats, "sent-rtp",
494*d9f75844SAndroid Build Coastguard Worker &packets_sent,
495*d9f75844SAndroid Build Coastguard Worker &bytes_sent)
496*d9f75844SAndroid Build Coastguard Worker // clang-format on
497*d9f75844SAndroid Build Coastguard Worker
RTCSentRtpStreamStats(const std::string && id,int64_t timestamp_us)498*d9f75844SAndroid Build Coastguard Worker RTCSentRtpStreamStats::RTCSentRtpStreamStats(const std::string&& id,
499*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
500*d9f75844SAndroid Build Coastguard Worker : RTCSentRtpStreamStats(std::string(id), timestamp_us) {}
501*d9f75844SAndroid Build Coastguard Worker
RTCSentRtpStreamStats(std::string && id,int64_t timestamp_us)502*d9f75844SAndroid Build Coastguard Worker RTCSentRtpStreamStats::RTCSentRtpStreamStats(std::string&& id,
503*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
504*d9f75844SAndroid Build Coastguard Worker : RTCRTPStreamStats(std::move(id), timestamp_us),
505*d9f75844SAndroid Build Coastguard Worker packets_sent("packetsSent"),
506*d9f75844SAndroid Build Coastguard Worker bytes_sent("bytesSent") {}
507*d9f75844SAndroid Build Coastguard Worker
508*d9f75844SAndroid Build Coastguard Worker RTCSentRtpStreamStats::RTCSentRtpStreamStats(
509*d9f75844SAndroid Build Coastguard Worker const RTCSentRtpStreamStats& other) = default;
510*d9f75844SAndroid Build Coastguard Worker
~RTCSentRtpStreamStats()511*d9f75844SAndroid Build Coastguard Worker RTCSentRtpStreamStats::~RTCSentRtpStreamStats() {}
512*d9f75844SAndroid Build Coastguard Worker
513*d9f75844SAndroid Build Coastguard Worker // clang-format off
514*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
515*d9f75844SAndroid Build Coastguard Worker RTCInboundRTPStreamStats, RTCReceivedRtpStreamStats, "inbound-rtp",
516*d9f75844SAndroid Build Coastguard Worker &track_identifier,
517*d9f75844SAndroid Build Coastguard Worker &mid,
518*d9f75844SAndroid Build Coastguard Worker &remote_id,
519*d9f75844SAndroid Build Coastguard Worker &packets_received,
520*d9f75844SAndroid Build Coastguard Worker &packets_discarded,
521*d9f75844SAndroid Build Coastguard Worker &fec_packets_received,
522*d9f75844SAndroid Build Coastguard Worker &fec_packets_discarded,
523*d9f75844SAndroid Build Coastguard Worker &bytes_received,
524*d9f75844SAndroid Build Coastguard Worker &header_bytes_received,
525*d9f75844SAndroid Build Coastguard Worker &last_packet_received_timestamp,
526*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_delay,
527*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_target_delay,
528*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_minimum_delay,
529*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_emitted_count,
530*d9f75844SAndroid Build Coastguard Worker &total_samples_received,
531*d9f75844SAndroid Build Coastguard Worker &concealed_samples,
532*d9f75844SAndroid Build Coastguard Worker &silent_concealed_samples,
533*d9f75844SAndroid Build Coastguard Worker &concealment_events,
534*d9f75844SAndroid Build Coastguard Worker &inserted_samples_for_deceleration,
535*d9f75844SAndroid Build Coastguard Worker &removed_samples_for_acceleration,
536*d9f75844SAndroid Build Coastguard Worker &audio_level,
537*d9f75844SAndroid Build Coastguard Worker &total_audio_energy,
538*d9f75844SAndroid Build Coastguard Worker &total_samples_duration,
539*d9f75844SAndroid Build Coastguard Worker &frames_received,
540*d9f75844SAndroid Build Coastguard Worker &frame_width,
541*d9f75844SAndroid Build Coastguard Worker &frame_height,
542*d9f75844SAndroid Build Coastguard Worker &frames_per_second,
543*d9f75844SAndroid Build Coastguard Worker &frames_decoded,
544*d9f75844SAndroid Build Coastguard Worker &key_frames_decoded,
545*d9f75844SAndroid Build Coastguard Worker &frames_dropped,
546*d9f75844SAndroid Build Coastguard Worker &total_decode_time,
547*d9f75844SAndroid Build Coastguard Worker &total_processing_delay,
548*d9f75844SAndroid Build Coastguard Worker &total_assembly_time,
549*d9f75844SAndroid Build Coastguard Worker &frames_assembled_from_multiple_packets,
550*d9f75844SAndroid Build Coastguard Worker &total_inter_frame_delay,
551*d9f75844SAndroid Build Coastguard Worker &total_squared_inter_frame_delay,
552*d9f75844SAndroid Build Coastguard Worker &pause_count,
553*d9f75844SAndroid Build Coastguard Worker &total_pauses_duration,
554*d9f75844SAndroid Build Coastguard Worker &freeze_count,
555*d9f75844SAndroid Build Coastguard Worker &total_freezes_duration,
556*d9f75844SAndroid Build Coastguard Worker &content_type,
557*d9f75844SAndroid Build Coastguard Worker &estimated_playout_timestamp,
558*d9f75844SAndroid Build Coastguard Worker &decoder_implementation,
559*d9f75844SAndroid Build Coastguard Worker &fir_count,
560*d9f75844SAndroid Build Coastguard Worker &pli_count,
561*d9f75844SAndroid Build Coastguard Worker &nack_count,
562*d9f75844SAndroid Build Coastguard Worker &qp_sum,
563*d9f75844SAndroid Build Coastguard Worker &goog_timing_frame_info,
564*d9f75844SAndroid Build Coastguard Worker &power_efficient_decoder,
565*d9f75844SAndroid Build Coastguard Worker &jitter_buffer_flushes,
566*d9f75844SAndroid Build Coastguard Worker &delayed_packet_outage_samples,
567*d9f75844SAndroid Build Coastguard Worker &relative_packet_arrival_delay,
568*d9f75844SAndroid Build Coastguard Worker &interruption_count,
569*d9f75844SAndroid Build Coastguard Worker &total_interruption_duration,
570*d9f75844SAndroid Build Coastguard Worker &min_playout_delay)
571*d9f75844SAndroid Build Coastguard Worker // clang-format on
572*d9f75844SAndroid Build Coastguard Worker
RTCInboundRTPStreamStats(const std::string & id,int64_t timestamp_us)573*d9f75844SAndroid Build Coastguard Worker RTCInboundRTPStreamStats::RTCInboundRTPStreamStats(const std::string& id,
574*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
575*d9f75844SAndroid Build Coastguard Worker : RTCInboundRTPStreamStats(std::string(id), timestamp_us) {}
576*d9f75844SAndroid Build Coastguard Worker
RTCInboundRTPStreamStats(std::string && id,int64_t timestamp_us)577*d9f75844SAndroid Build Coastguard Worker RTCInboundRTPStreamStats::RTCInboundRTPStreamStats(std::string&& id,
578*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
579*d9f75844SAndroid Build Coastguard Worker : RTCReceivedRtpStreamStats(std::move(id), timestamp_us),
580*d9f75844SAndroid Build Coastguard Worker track_identifier("trackIdentifier"),
581*d9f75844SAndroid Build Coastguard Worker mid("mid"),
582*d9f75844SAndroid Build Coastguard Worker remote_id("remoteId"),
583*d9f75844SAndroid Build Coastguard Worker packets_received("packetsReceived"),
584*d9f75844SAndroid Build Coastguard Worker packets_discarded("packetsDiscarded"),
585*d9f75844SAndroid Build Coastguard Worker fec_packets_received("fecPacketsReceived"),
586*d9f75844SAndroid Build Coastguard Worker fec_packets_discarded("fecPacketsDiscarded"),
587*d9f75844SAndroid Build Coastguard Worker bytes_received("bytesReceived"),
588*d9f75844SAndroid Build Coastguard Worker header_bytes_received("headerBytesReceived"),
589*d9f75844SAndroid Build Coastguard Worker last_packet_received_timestamp("lastPacketReceivedTimestamp"),
590*d9f75844SAndroid Build Coastguard Worker jitter_buffer_delay("jitterBufferDelay"),
591*d9f75844SAndroid Build Coastguard Worker jitter_buffer_target_delay("jitterBufferTargetDelay"),
592*d9f75844SAndroid Build Coastguard Worker jitter_buffer_minimum_delay("jitterBufferMinimumDelay"),
593*d9f75844SAndroid Build Coastguard Worker jitter_buffer_emitted_count("jitterBufferEmittedCount"),
594*d9f75844SAndroid Build Coastguard Worker total_samples_received("totalSamplesReceived"),
595*d9f75844SAndroid Build Coastguard Worker concealed_samples("concealedSamples"),
596*d9f75844SAndroid Build Coastguard Worker silent_concealed_samples("silentConcealedSamples"),
597*d9f75844SAndroid Build Coastguard Worker concealment_events("concealmentEvents"),
598*d9f75844SAndroid Build Coastguard Worker inserted_samples_for_deceleration("insertedSamplesForDeceleration"),
599*d9f75844SAndroid Build Coastguard Worker removed_samples_for_acceleration("removedSamplesForAcceleration"),
600*d9f75844SAndroid Build Coastguard Worker audio_level("audioLevel"),
601*d9f75844SAndroid Build Coastguard Worker total_audio_energy("totalAudioEnergy"),
602*d9f75844SAndroid Build Coastguard Worker total_samples_duration("totalSamplesDuration"),
603*d9f75844SAndroid Build Coastguard Worker frames_received("framesReceived"),
604*d9f75844SAndroid Build Coastguard Worker frame_width("frameWidth"),
605*d9f75844SAndroid Build Coastguard Worker frame_height("frameHeight"),
606*d9f75844SAndroid Build Coastguard Worker frames_per_second("framesPerSecond"),
607*d9f75844SAndroid Build Coastguard Worker frames_decoded("framesDecoded"),
608*d9f75844SAndroid Build Coastguard Worker key_frames_decoded("keyFramesDecoded"),
609*d9f75844SAndroid Build Coastguard Worker frames_dropped("framesDropped"),
610*d9f75844SAndroid Build Coastguard Worker total_decode_time("totalDecodeTime"),
611*d9f75844SAndroid Build Coastguard Worker total_processing_delay("totalProcessingDelay"),
612*d9f75844SAndroid Build Coastguard Worker total_assembly_time("totalAssemblyTime"),
613*d9f75844SAndroid Build Coastguard Worker frames_assembled_from_multiple_packets(
614*d9f75844SAndroid Build Coastguard Worker "framesAssembledFromMultiplePackets"),
615*d9f75844SAndroid Build Coastguard Worker total_inter_frame_delay("totalInterFrameDelay"),
616*d9f75844SAndroid Build Coastguard Worker total_squared_inter_frame_delay("totalSquaredInterFrameDelay"),
617*d9f75844SAndroid Build Coastguard Worker pause_count("pauseCount"),
618*d9f75844SAndroid Build Coastguard Worker total_pauses_duration("totalPausesDuration"),
619*d9f75844SAndroid Build Coastguard Worker freeze_count("freezeCount"),
620*d9f75844SAndroid Build Coastguard Worker total_freezes_duration("totalFreezesDuration"),
621*d9f75844SAndroid Build Coastguard Worker content_type("contentType"),
622*d9f75844SAndroid Build Coastguard Worker estimated_playout_timestamp("estimatedPlayoutTimestamp"),
623*d9f75844SAndroid Build Coastguard Worker decoder_implementation("decoderImplementation"),
624*d9f75844SAndroid Build Coastguard Worker fir_count("firCount"),
625*d9f75844SAndroid Build Coastguard Worker pli_count("pliCount"),
626*d9f75844SAndroid Build Coastguard Worker nack_count("nackCount"),
627*d9f75844SAndroid Build Coastguard Worker qp_sum("qpSum"),
628*d9f75844SAndroid Build Coastguard Worker goog_timing_frame_info("googTimingFrameInfo"),
629*d9f75844SAndroid Build Coastguard Worker power_efficient_decoder("powerEfficientDecoder"),
630*d9f75844SAndroid Build Coastguard Worker jitter_buffer_flushes(
631*d9f75844SAndroid Build Coastguard Worker "jitterBufferFlushes",
632*d9f75844SAndroid Build Coastguard Worker {NonStandardGroupId::kRtcAudioJitterBufferMaxPackets}),
633*d9f75844SAndroid Build Coastguard Worker delayed_packet_outage_samples(
634*d9f75844SAndroid Build Coastguard Worker "delayedPacketOutageSamples",
635*d9f75844SAndroid Build Coastguard Worker {NonStandardGroupId::kRtcAudioJitterBufferMaxPackets,
636*d9f75844SAndroid Build Coastguard Worker NonStandardGroupId::kRtcStatsRelativePacketArrivalDelay}),
637*d9f75844SAndroid Build Coastguard Worker relative_packet_arrival_delay(
638*d9f75844SAndroid Build Coastguard Worker "relativePacketArrivalDelay",
639*d9f75844SAndroid Build Coastguard Worker {NonStandardGroupId::kRtcStatsRelativePacketArrivalDelay}),
640*d9f75844SAndroid Build Coastguard Worker interruption_count("interruptionCount"),
641*d9f75844SAndroid Build Coastguard Worker total_interruption_duration("totalInterruptionDuration"),
642*d9f75844SAndroid Build Coastguard Worker min_playout_delay("minPlayoutDelay") {}
643*d9f75844SAndroid Build Coastguard Worker
644*d9f75844SAndroid Build Coastguard Worker RTCInboundRTPStreamStats::RTCInboundRTPStreamStats(
645*d9f75844SAndroid Build Coastguard Worker const RTCInboundRTPStreamStats& other) = default;
~RTCInboundRTPStreamStats()646*d9f75844SAndroid Build Coastguard Worker RTCInboundRTPStreamStats::~RTCInboundRTPStreamStats() {}
647*d9f75844SAndroid Build Coastguard Worker
648*d9f75844SAndroid Build Coastguard Worker // clang-format off
649*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
650*d9f75844SAndroid Build Coastguard Worker RTCOutboundRTPStreamStats, RTCRTPStreamStats, "outbound-rtp",
651*d9f75844SAndroid Build Coastguard Worker &media_source_id,
652*d9f75844SAndroid Build Coastguard Worker &remote_id,
653*d9f75844SAndroid Build Coastguard Worker &mid,
654*d9f75844SAndroid Build Coastguard Worker &rid,
655*d9f75844SAndroid Build Coastguard Worker &packets_sent,
656*d9f75844SAndroid Build Coastguard Worker &retransmitted_packets_sent,
657*d9f75844SAndroid Build Coastguard Worker &bytes_sent,
658*d9f75844SAndroid Build Coastguard Worker &header_bytes_sent,
659*d9f75844SAndroid Build Coastguard Worker &retransmitted_bytes_sent,
660*d9f75844SAndroid Build Coastguard Worker &target_bitrate,
661*d9f75844SAndroid Build Coastguard Worker &frames_encoded,
662*d9f75844SAndroid Build Coastguard Worker &key_frames_encoded,
663*d9f75844SAndroid Build Coastguard Worker &total_encode_time,
664*d9f75844SAndroid Build Coastguard Worker &total_encoded_bytes_target,
665*d9f75844SAndroid Build Coastguard Worker &frame_width,
666*d9f75844SAndroid Build Coastguard Worker &frame_height,
667*d9f75844SAndroid Build Coastguard Worker &frames_per_second,
668*d9f75844SAndroid Build Coastguard Worker &frames_sent,
669*d9f75844SAndroid Build Coastguard Worker &huge_frames_sent,
670*d9f75844SAndroid Build Coastguard Worker &total_packet_send_delay,
671*d9f75844SAndroid Build Coastguard Worker &quality_limitation_reason,
672*d9f75844SAndroid Build Coastguard Worker &quality_limitation_durations,
673*d9f75844SAndroid Build Coastguard Worker &quality_limitation_resolution_changes,
674*d9f75844SAndroid Build Coastguard Worker &content_type,
675*d9f75844SAndroid Build Coastguard Worker &encoder_implementation,
676*d9f75844SAndroid Build Coastguard Worker &fir_count,
677*d9f75844SAndroid Build Coastguard Worker &pli_count,
678*d9f75844SAndroid Build Coastguard Worker &nack_count,
679*d9f75844SAndroid Build Coastguard Worker &qp_sum,
680*d9f75844SAndroid Build Coastguard Worker &active,
681*d9f75844SAndroid Build Coastguard Worker &power_efficient_encoder)
682*d9f75844SAndroid Build Coastguard Worker // clang-format on
683*d9f75844SAndroid Build Coastguard Worker
RTCOutboundRTPStreamStats(const std::string & id,int64_t timestamp_us)684*d9f75844SAndroid Build Coastguard Worker RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(const std::string& id,
685*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
686*d9f75844SAndroid Build Coastguard Worker : RTCOutboundRTPStreamStats(std::string(id), timestamp_us) {}
687*d9f75844SAndroid Build Coastguard Worker
RTCOutboundRTPStreamStats(std::string && id,int64_t timestamp_us)688*d9f75844SAndroid Build Coastguard Worker RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(std::string&& id,
689*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
690*d9f75844SAndroid Build Coastguard Worker : RTCRTPStreamStats(std::move(id), timestamp_us),
691*d9f75844SAndroid Build Coastguard Worker media_source_id("mediaSourceId"),
692*d9f75844SAndroid Build Coastguard Worker remote_id("remoteId"),
693*d9f75844SAndroid Build Coastguard Worker mid("mid"),
694*d9f75844SAndroid Build Coastguard Worker rid("rid"),
695*d9f75844SAndroid Build Coastguard Worker packets_sent("packetsSent"),
696*d9f75844SAndroid Build Coastguard Worker retransmitted_packets_sent("retransmittedPacketsSent"),
697*d9f75844SAndroid Build Coastguard Worker bytes_sent("bytesSent"),
698*d9f75844SAndroid Build Coastguard Worker header_bytes_sent("headerBytesSent"),
699*d9f75844SAndroid Build Coastguard Worker retransmitted_bytes_sent("retransmittedBytesSent"),
700*d9f75844SAndroid Build Coastguard Worker target_bitrate("targetBitrate"),
701*d9f75844SAndroid Build Coastguard Worker frames_encoded("framesEncoded"),
702*d9f75844SAndroid Build Coastguard Worker key_frames_encoded("keyFramesEncoded"),
703*d9f75844SAndroid Build Coastguard Worker total_encode_time("totalEncodeTime"),
704*d9f75844SAndroid Build Coastguard Worker total_encoded_bytes_target("totalEncodedBytesTarget"),
705*d9f75844SAndroid Build Coastguard Worker frame_width("frameWidth"),
706*d9f75844SAndroid Build Coastguard Worker frame_height("frameHeight"),
707*d9f75844SAndroid Build Coastguard Worker frames_per_second("framesPerSecond"),
708*d9f75844SAndroid Build Coastguard Worker frames_sent("framesSent"),
709*d9f75844SAndroid Build Coastguard Worker huge_frames_sent("hugeFramesSent"),
710*d9f75844SAndroid Build Coastguard Worker total_packet_send_delay("totalPacketSendDelay"),
711*d9f75844SAndroid Build Coastguard Worker quality_limitation_reason("qualityLimitationReason"),
712*d9f75844SAndroid Build Coastguard Worker quality_limitation_durations("qualityLimitationDurations"),
713*d9f75844SAndroid Build Coastguard Worker quality_limitation_resolution_changes(
714*d9f75844SAndroid Build Coastguard Worker "qualityLimitationResolutionChanges"),
715*d9f75844SAndroid Build Coastguard Worker content_type("contentType"),
716*d9f75844SAndroid Build Coastguard Worker encoder_implementation("encoderImplementation"),
717*d9f75844SAndroid Build Coastguard Worker fir_count("firCount"),
718*d9f75844SAndroid Build Coastguard Worker pli_count("pliCount"),
719*d9f75844SAndroid Build Coastguard Worker nack_count("nackCount"),
720*d9f75844SAndroid Build Coastguard Worker qp_sum("qpSum"),
721*d9f75844SAndroid Build Coastguard Worker active("active"),
722*d9f75844SAndroid Build Coastguard Worker power_efficient_encoder("powerEfficientEncoder") {}
723*d9f75844SAndroid Build Coastguard Worker
724*d9f75844SAndroid Build Coastguard Worker RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(
725*d9f75844SAndroid Build Coastguard Worker const RTCOutboundRTPStreamStats& other) = default;
726*d9f75844SAndroid Build Coastguard Worker
~RTCOutboundRTPStreamStats()727*d9f75844SAndroid Build Coastguard Worker RTCOutboundRTPStreamStats::~RTCOutboundRTPStreamStats() {}
728*d9f75844SAndroid Build Coastguard Worker
729*d9f75844SAndroid Build Coastguard Worker // clang-format off
730*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
731*d9f75844SAndroid Build Coastguard Worker RTCRemoteInboundRtpStreamStats, RTCReceivedRtpStreamStats,
732*d9f75844SAndroid Build Coastguard Worker "remote-inbound-rtp",
733*d9f75844SAndroid Build Coastguard Worker &local_id,
734*d9f75844SAndroid Build Coastguard Worker &round_trip_time,
735*d9f75844SAndroid Build Coastguard Worker &fraction_lost,
736*d9f75844SAndroid Build Coastguard Worker &total_round_trip_time,
737*d9f75844SAndroid Build Coastguard Worker &round_trip_time_measurements)
738*d9f75844SAndroid Build Coastguard Worker // clang-format on
739*d9f75844SAndroid Build Coastguard Worker
RTCRemoteInboundRtpStreamStats(const std::string & id,int64_t timestamp_us)740*d9f75844SAndroid Build Coastguard Worker RTCRemoteInboundRtpStreamStats::RTCRemoteInboundRtpStreamStats(
741*d9f75844SAndroid Build Coastguard Worker const std::string& id,
742*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
743*d9f75844SAndroid Build Coastguard Worker : RTCRemoteInboundRtpStreamStats(std::string(id), timestamp_us) {}
744*d9f75844SAndroid Build Coastguard Worker
RTCRemoteInboundRtpStreamStats(std::string && id,int64_t timestamp_us)745*d9f75844SAndroid Build Coastguard Worker RTCRemoteInboundRtpStreamStats::RTCRemoteInboundRtpStreamStats(
746*d9f75844SAndroid Build Coastguard Worker std::string&& id,
747*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
748*d9f75844SAndroid Build Coastguard Worker : RTCReceivedRtpStreamStats(std::move(id), timestamp_us),
749*d9f75844SAndroid Build Coastguard Worker local_id("localId"),
750*d9f75844SAndroid Build Coastguard Worker round_trip_time("roundTripTime"),
751*d9f75844SAndroid Build Coastguard Worker fraction_lost("fractionLost"),
752*d9f75844SAndroid Build Coastguard Worker total_round_trip_time("totalRoundTripTime"),
753*d9f75844SAndroid Build Coastguard Worker round_trip_time_measurements("roundTripTimeMeasurements") {}
754*d9f75844SAndroid Build Coastguard Worker
755*d9f75844SAndroid Build Coastguard Worker RTCRemoteInboundRtpStreamStats::RTCRemoteInboundRtpStreamStats(
756*d9f75844SAndroid Build Coastguard Worker const RTCRemoteInboundRtpStreamStats& other) = default;
757*d9f75844SAndroid Build Coastguard Worker
~RTCRemoteInboundRtpStreamStats()758*d9f75844SAndroid Build Coastguard Worker RTCRemoteInboundRtpStreamStats::~RTCRemoteInboundRtpStreamStats() {}
759*d9f75844SAndroid Build Coastguard Worker
760*d9f75844SAndroid Build Coastguard Worker // clang-format off
761*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(
762*d9f75844SAndroid Build Coastguard Worker RTCRemoteOutboundRtpStreamStats, RTCSentRtpStreamStats,
763*d9f75844SAndroid Build Coastguard Worker "remote-outbound-rtp",
764*d9f75844SAndroid Build Coastguard Worker &local_id,
765*d9f75844SAndroid Build Coastguard Worker &remote_timestamp,
766*d9f75844SAndroid Build Coastguard Worker &reports_sent,
767*d9f75844SAndroid Build Coastguard Worker &round_trip_time,
768*d9f75844SAndroid Build Coastguard Worker &round_trip_time_measurements,
769*d9f75844SAndroid Build Coastguard Worker &total_round_trip_time)
770*d9f75844SAndroid Build Coastguard Worker // clang-format on
771*d9f75844SAndroid Build Coastguard Worker
RTCRemoteOutboundRtpStreamStats(const std::string & id,int64_t timestamp_us)772*d9f75844SAndroid Build Coastguard Worker RTCRemoteOutboundRtpStreamStats::RTCRemoteOutboundRtpStreamStats(
773*d9f75844SAndroid Build Coastguard Worker const std::string& id,
774*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
775*d9f75844SAndroid Build Coastguard Worker : RTCRemoteOutboundRtpStreamStats(std::string(id), timestamp_us) {}
776*d9f75844SAndroid Build Coastguard Worker
RTCRemoteOutboundRtpStreamStats(std::string && id,int64_t timestamp_us)777*d9f75844SAndroid Build Coastguard Worker RTCRemoteOutboundRtpStreamStats::RTCRemoteOutboundRtpStreamStats(
778*d9f75844SAndroid Build Coastguard Worker std::string&& id,
779*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
780*d9f75844SAndroid Build Coastguard Worker : RTCSentRtpStreamStats(std::move(id), timestamp_us),
781*d9f75844SAndroid Build Coastguard Worker local_id("localId"),
782*d9f75844SAndroid Build Coastguard Worker remote_timestamp("remoteTimestamp"),
783*d9f75844SAndroid Build Coastguard Worker reports_sent("reportsSent"),
784*d9f75844SAndroid Build Coastguard Worker round_trip_time("roundTripTime"),
785*d9f75844SAndroid Build Coastguard Worker round_trip_time_measurements("roundTripTimeMeasurements"),
786*d9f75844SAndroid Build Coastguard Worker total_round_trip_time("totalRoundTripTime") {}
787*d9f75844SAndroid Build Coastguard Worker
788*d9f75844SAndroid Build Coastguard Worker RTCRemoteOutboundRtpStreamStats::RTCRemoteOutboundRtpStreamStats(
789*d9f75844SAndroid Build Coastguard Worker const RTCRemoteOutboundRtpStreamStats& other) = default;
790*d9f75844SAndroid Build Coastguard Worker
~RTCRemoteOutboundRtpStreamStats()791*d9f75844SAndroid Build Coastguard Worker RTCRemoteOutboundRtpStreamStats::~RTCRemoteOutboundRtpStreamStats() {}
792*d9f75844SAndroid Build Coastguard Worker
793*d9f75844SAndroid Build Coastguard Worker // clang-format off
794*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCMediaSourceStats, RTCStats, "parent-media-source",
795*d9f75844SAndroid Build Coastguard Worker &track_identifier,
796*d9f75844SAndroid Build Coastguard Worker &kind)
797*d9f75844SAndroid Build Coastguard Worker // clang-format on
798*d9f75844SAndroid Build Coastguard Worker
RTCMediaSourceStats(const std::string & id,int64_t timestamp_us)799*d9f75844SAndroid Build Coastguard Worker RTCMediaSourceStats::RTCMediaSourceStats(const std::string& id,
800*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
801*d9f75844SAndroid Build Coastguard Worker : RTCMediaSourceStats(std::string(id), timestamp_us) {}
802*d9f75844SAndroid Build Coastguard Worker
RTCMediaSourceStats(std::string && id,int64_t timestamp_us)803*d9f75844SAndroid Build Coastguard Worker RTCMediaSourceStats::RTCMediaSourceStats(std::string&& id, int64_t timestamp_us)
804*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
805*d9f75844SAndroid Build Coastguard Worker track_identifier("trackIdentifier"),
806*d9f75844SAndroid Build Coastguard Worker kind("kind") {}
807*d9f75844SAndroid Build Coastguard Worker
808*d9f75844SAndroid Build Coastguard Worker RTCMediaSourceStats::RTCMediaSourceStats(const RTCMediaSourceStats& other) =
809*d9f75844SAndroid Build Coastguard Worker default;
810*d9f75844SAndroid Build Coastguard Worker
~RTCMediaSourceStats()811*d9f75844SAndroid Build Coastguard Worker RTCMediaSourceStats::~RTCMediaSourceStats() {}
812*d9f75844SAndroid Build Coastguard Worker
813*d9f75844SAndroid Build Coastguard Worker // clang-format off
814*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCAudioSourceStats, RTCMediaSourceStats, "media-source",
815*d9f75844SAndroid Build Coastguard Worker &audio_level,
816*d9f75844SAndroid Build Coastguard Worker &total_audio_energy,
817*d9f75844SAndroid Build Coastguard Worker &total_samples_duration,
818*d9f75844SAndroid Build Coastguard Worker &echo_return_loss,
819*d9f75844SAndroid Build Coastguard Worker &echo_return_loss_enhancement)
820*d9f75844SAndroid Build Coastguard Worker // clang-format on
821*d9f75844SAndroid Build Coastguard Worker
RTCAudioSourceStats(const std::string & id,int64_t timestamp_us)822*d9f75844SAndroid Build Coastguard Worker RTCAudioSourceStats::RTCAudioSourceStats(const std::string& id,
823*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
824*d9f75844SAndroid Build Coastguard Worker : RTCAudioSourceStats(std::string(id), timestamp_us) {}
825*d9f75844SAndroid Build Coastguard Worker
RTCAudioSourceStats(std::string && id,int64_t timestamp_us)826*d9f75844SAndroid Build Coastguard Worker RTCAudioSourceStats::RTCAudioSourceStats(std::string&& id, int64_t timestamp_us)
827*d9f75844SAndroid Build Coastguard Worker : RTCMediaSourceStats(std::move(id), timestamp_us),
828*d9f75844SAndroid Build Coastguard Worker audio_level("audioLevel"),
829*d9f75844SAndroid Build Coastguard Worker total_audio_energy("totalAudioEnergy"),
830*d9f75844SAndroid Build Coastguard Worker total_samples_duration("totalSamplesDuration"),
831*d9f75844SAndroid Build Coastguard Worker echo_return_loss("echoReturnLoss"),
832*d9f75844SAndroid Build Coastguard Worker echo_return_loss_enhancement("echoReturnLossEnhancement") {}
833*d9f75844SAndroid Build Coastguard Worker
834*d9f75844SAndroid Build Coastguard Worker RTCAudioSourceStats::RTCAudioSourceStats(const RTCAudioSourceStats& other) =
835*d9f75844SAndroid Build Coastguard Worker default;
836*d9f75844SAndroid Build Coastguard Worker
~RTCAudioSourceStats()837*d9f75844SAndroid Build Coastguard Worker RTCAudioSourceStats::~RTCAudioSourceStats() {}
838*d9f75844SAndroid Build Coastguard Worker
839*d9f75844SAndroid Build Coastguard Worker // clang-format off
840*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCVideoSourceStats, RTCMediaSourceStats, "media-source",
841*d9f75844SAndroid Build Coastguard Worker &width,
842*d9f75844SAndroid Build Coastguard Worker &height,
843*d9f75844SAndroid Build Coastguard Worker &frames,
844*d9f75844SAndroid Build Coastguard Worker &frames_per_second)
845*d9f75844SAndroid Build Coastguard Worker // clang-format on
846*d9f75844SAndroid Build Coastguard Worker
RTCVideoSourceStats(const std::string & id,int64_t timestamp_us)847*d9f75844SAndroid Build Coastguard Worker RTCVideoSourceStats::RTCVideoSourceStats(const std::string& id,
848*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
849*d9f75844SAndroid Build Coastguard Worker : RTCVideoSourceStats(std::string(id), timestamp_us) {}
850*d9f75844SAndroid Build Coastguard Worker
RTCVideoSourceStats(std::string && id,int64_t timestamp_us)851*d9f75844SAndroid Build Coastguard Worker RTCVideoSourceStats::RTCVideoSourceStats(std::string&& id, int64_t timestamp_us)
852*d9f75844SAndroid Build Coastguard Worker : RTCMediaSourceStats(std::move(id), timestamp_us),
853*d9f75844SAndroid Build Coastguard Worker width("width"),
854*d9f75844SAndroid Build Coastguard Worker height("height"),
855*d9f75844SAndroid Build Coastguard Worker frames("frames"),
856*d9f75844SAndroid Build Coastguard Worker frames_per_second("framesPerSecond") {}
857*d9f75844SAndroid Build Coastguard Worker
858*d9f75844SAndroid Build Coastguard Worker RTCVideoSourceStats::RTCVideoSourceStats(const RTCVideoSourceStats& other) =
859*d9f75844SAndroid Build Coastguard Worker default;
860*d9f75844SAndroid Build Coastguard Worker
~RTCVideoSourceStats()861*d9f75844SAndroid Build Coastguard Worker RTCVideoSourceStats::~RTCVideoSourceStats() {}
862*d9f75844SAndroid Build Coastguard Worker
863*d9f75844SAndroid Build Coastguard Worker // clang-format off
864*d9f75844SAndroid Build Coastguard Worker WEBRTC_RTCSTATS_IMPL(RTCTransportStats, RTCStats, "transport",
865*d9f75844SAndroid Build Coastguard Worker &bytes_sent,
866*d9f75844SAndroid Build Coastguard Worker &packets_sent,
867*d9f75844SAndroid Build Coastguard Worker &bytes_received,
868*d9f75844SAndroid Build Coastguard Worker &packets_received,
869*d9f75844SAndroid Build Coastguard Worker &rtcp_transport_stats_id,
870*d9f75844SAndroid Build Coastguard Worker &dtls_state,
871*d9f75844SAndroid Build Coastguard Worker &selected_candidate_pair_id,
872*d9f75844SAndroid Build Coastguard Worker &local_certificate_id,
873*d9f75844SAndroid Build Coastguard Worker &remote_certificate_id,
874*d9f75844SAndroid Build Coastguard Worker &tls_version,
875*d9f75844SAndroid Build Coastguard Worker &dtls_cipher,
876*d9f75844SAndroid Build Coastguard Worker &dtls_role,
877*d9f75844SAndroid Build Coastguard Worker &srtp_cipher,
878*d9f75844SAndroid Build Coastguard Worker &selected_candidate_pair_changes,
879*d9f75844SAndroid Build Coastguard Worker &ice_role,
880*d9f75844SAndroid Build Coastguard Worker &ice_local_username_fragment,
881*d9f75844SAndroid Build Coastguard Worker &ice_state)
882*d9f75844SAndroid Build Coastguard Worker // clang-format on
883*d9f75844SAndroid Build Coastguard Worker
RTCTransportStats(const std::string & id,int64_t timestamp_us)884*d9f75844SAndroid Build Coastguard Worker RTCTransportStats::RTCTransportStats(const std::string& id,
885*d9f75844SAndroid Build Coastguard Worker int64_t timestamp_us)
886*d9f75844SAndroid Build Coastguard Worker : RTCTransportStats(std::string(id), timestamp_us) {}
887*d9f75844SAndroid Build Coastguard Worker
RTCTransportStats(std::string && id,int64_t timestamp_us)888*d9f75844SAndroid Build Coastguard Worker RTCTransportStats::RTCTransportStats(std::string&& id, int64_t timestamp_us)
889*d9f75844SAndroid Build Coastguard Worker : RTCStats(std::move(id), timestamp_us),
890*d9f75844SAndroid Build Coastguard Worker bytes_sent("bytesSent"),
891*d9f75844SAndroid Build Coastguard Worker packets_sent("packetsSent"),
892*d9f75844SAndroid Build Coastguard Worker bytes_received("bytesReceived"),
893*d9f75844SAndroid Build Coastguard Worker packets_received("packetsReceived"),
894*d9f75844SAndroid Build Coastguard Worker rtcp_transport_stats_id("rtcpTransportStatsId"),
895*d9f75844SAndroid Build Coastguard Worker dtls_state("dtlsState"),
896*d9f75844SAndroid Build Coastguard Worker selected_candidate_pair_id("selectedCandidatePairId"),
897*d9f75844SAndroid Build Coastguard Worker local_certificate_id("localCertificateId"),
898*d9f75844SAndroid Build Coastguard Worker remote_certificate_id("remoteCertificateId"),
899*d9f75844SAndroid Build Coastguard Worker tls_version("tlsVersion"),
900*d9f75844SAndroid Build Coastguard Worker dtls_cipher("dtlsCipher"),
901*d9f75844SAndroid Build Coastguard Worker dtls_role("dtlsRole"),
902*d9f75844SAndroid Build Coastguard Worker srtp_cipher("srtpCipher"),
903*d9f75844SAndroid Build Coastguard Worker selected_candidate_pair_changes("selectedCandidatePairChanges"),
904*d9f75844SAndroid Build Coastguard Worker ice_role("iceRole"),
905*d9f75844SAndroid Build Coastguard Worker ice_local_username_fragment("iceLocalUsernameFragment"),
906*d9f75844SAndroid Build Coastguard Worker ice_state("iceState") {}
907*d9f75844SAndroid Build Coastguard Worker
908*d9f75844SAndroid Build Coastguard Worker RTCTransportStats::RTCTransportStats(const RTCTransportStats& other) = default;
909*d9f75844SAndroid Build Coastguard Worker
~RTCTransportStats()910*d9f75844SAndroid Build Coastguard Worker RTCTransportStats::~RTCTransportStats() {}
911*d9f75844SAndroid Build Coastguard Worker
912*d9f75844SAndroid Build Coastguard Worker } // namespace webrtc
913