Fix stats inheritance and rename RTP to Rtp

making RTCOutboundRtpStreamStats inherit from RTCSentRtpStreamStats
as defined in
  https://www.w3.org/TR/webrtc-stats/#outboundrtpstats-dict*

This removes the duplicated definitions of packetsSent and bytesSent.

BUG=webrtc:14948

Change-Id: I184998b65d59dbd0d1288733d55d8a884e6de970
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/295660
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39481}
This commit is contained in:
Philipp Hancke 2023-03-01 08:28:53 +01:00 committed by WebRTC LUCI CQ
parent 1e2d951762
commit 1f80451932
3 changed files with 31 additions and 36 deletions

View file

@ -354,12 +354,12 @@ class RTC_EXPORT RTCPeerConnectionStats final : public RTCStats {
}; };
// https://w3c.github.io/webrtc-stats/#streamstats-dict* // https://w3c.github.io/webrtc-stats/#streamstats-dict*
class RTC_EXPORT RTCRTPStreamStats : public RTCStats { class RTC_EXPORT RTCRtpStreamStats : public RTCStats {
public: public:
WEBRTC_RTCSTATS_DECL(); WEBRTC_RTCSTATS_DECL();
RTCRTPStreamStats(const RTCRTPStreamStats& other); RTCRtpStreamStats(const RTCRtpStreamStats& other);
~RTCRTPStreamStats() override; ~RTCRtpStreamStats() override;
RTCStatsMember<uint32_t> ssrc; RTCStatsMember<uint32_t> ssrc;
RTCStatsMember<std::string> kind; RTCStatsMember<std::string> kind;
@ -372,11 +372,11 @@ class RTC_EXPORT RTCRTPStreamStats : public RTCStats {
RTCStatsMember<std::string> media_type; // renamed to kind. RTCStatsMember<std::string> media_type; // renamed to kind.
protected: protected:
RTCRTPStreamStats(std::string id, Timestamp timestamp); RTCRtpStreamStats(std::string id, Timestamp timestamp);
}; };
// https://www.w3.org/TR/webrtc-stats/#receivedrtpstats-dict* // https://www.w3.org/TR/webrtc-stats/#receivedrtpstats-dict*
class RTC_EXPORT RTCReceivedRtpStreamStats : public RTCRTPStreamStats { class RTC_EXPORT RTCReceivedRtpStreamStats : public RTCRtpStreamStats {
public: public:
WEBRTC_RTCSTATS_DECL(); WEBRTC_RTCSTATS_DECL();
@ -391,7 +391,7 @@ class RTC_EXPORT RTCReceivedRtpStreamStats : public RTCRTPStreamStats {
}; };
// https://www.w3.org/TR/webrtc-stats/#sentrtpstats-dict* // https://www.w3.org/TR/webrtc-stats/#sentrtpstats-dict*
class RTC_EXPORT RTCSentRtpStreamStats : public RTCRTPStreamStats { class RTC_EXPORT RTCSentRtpStreamStats : public RTCRtpStreamStats {
public: public:
WEBRTC_RTCSTATS_DECL(); WEBRTC_RTCSTATS_DECL();
@ -495,7 +495,8 @@ class RTC_EXPORT RTCInboundRTPStreamStats final
}; };
// https://w3c.github.io/webrtc-stats/#outboundrtpstats-dict* // https://w3c.github.io/webrtc-stats/#outboundrtpstats-dict*
class RTC_EXPORT RTCOutboundRTPStreamStats final : public RTCRTPStreamStats { class RTC_EXPORT RTCOutboundRTPStreamStats final
: public RTCSentRtpStreamStats {
public: public:
WEBRTC_RTCSTATS_DECL(); WEBRTC_RTCSTATS_DECL();
@ -507,9 +508,7 @@ class RTC_EXPORT RTCOutboundRTPStreamStats final : public RTCRTPStreamStats {
RTCStatsMember<std::string> remote_id; RTCStatsMember<std::string> remote_id;
RTCStatsMember<std::string> mid; RTCStatsMember<std::string> mid;
RTCStatsMember<std::string> rid; RTCStatsMember<std::string> rid;
RTCStatsMember<uint32_t> packets_sent;
RTCStatsMember<uint64_t> retransmitted_packets_sent; RTCStatsMember<uint64_t> retransmitted_packets_sent;
RTCStatsMember<uint64_t> bytes_sent;
RTCStatsMember<uint64_t> header_bytes_sent; RTCStatsMember<uint64_t> header_bytes_sent;
RTCStatsMember<uint64_t> retransmitted_bytes_sent; RTCStatsMember<uint64_t> retransmitted_bytes_sent;
RTCStatsMember<double> target_bitrate; RTCStatsMember<double> target_bitrate;

View file

@ -390,16 +390,16 @@ class RTCStatsReportVerifier {
verify_successful &= VerifyRTCPeerConnectionStats( verify_successful &= VerifyRTCPeerConnectionStats(
stats.cast_to<RTCPeerConnectionStats>()); stats.cast_to<RTCPeerConnectionStats>());
} else if (stats.type() == RTCInboundRTPStreamStats::kType) { } else if (stats.type() == RTCInboundRTPStreamStats::kType) {
verify_successful &= VerifyRTCInboundRTPStreamStats( verify_successful &= VerifyRTCInboundRtpStreamStats(
stats.cast_to<RTCInboundRTPStreamStats>()); stats.cast_to<RTCInboundRTPStreamStats>());
} else if (stats.type() == RTCOutboundRTPStreamStats::kType) { } else if (stats.type() == RTCOutboundRTPStreamStats::kType) {
verify_successful &= VerifyRTCOutboundRTPStreamStats( verify_successful &= VerifyRTCOutboundRtpStreamStats(
stats.cast_to<RTCOutboundRTPStreamStats>()); stats.cast_to<RTCOutboundRTPStreamStats>());
} else if (stats.type() == RTCRemoteInboundRtpStreamStats::kType) { } else if (stats.type() == RTCRemoteInboundRtpStreamStats::kType) {
verify_successful &= VerifyRTCRemoteInboundRtpStreamStats( verify_successful &= VerifyRTCRemoteInboundRtpStreamStats(
stats.cast_to<RTCRemoteInboundRtpStreamStats>()); stats.cast_to<RTCRemoteInboundRtpStreamStats>());
} else if (stats.type() == RTCRemoteOutboundRtpStreamStats::kType) { } else if (stats.type() == RTCRemoteOutboundRtpStreamStats::kType) {
verify_successful &= VerifyRTCRemoteOutboundRTPStreamStats( verify_successful &= VerifyRTCRemoteOutboundRtpStreamStats(
stats.cast_to<RTCRemoteOutboundRtpStreamStats>()); stats.cast_to<RTCRemoteOutboundRtpStreamStats>());
} else if (stats.type() == RTCAudioSourceStats::kType) { } else if (stats.type() == RTCAudioSourceStats::kType) {
// RTCAudioSourceStats::kType and RTCVideoSourceStats::kType both have // RTCAudioSourceStats::kType and RTCVideoSourceStats::kType both have
@ -715,7 +715,7 @@ class RTCStatsReportVerifier {
return verifier.ExpectAllMembersSuccessfullyTested(); return verifier.ExpectAllMembersSuccessfullyTested();
} }
void VerifyRTCRTPStreamStats(const RTCRTPStreamStats& stream, void VerifyRTCRtpStreamStats(const RTCRtpStreamStats& stream,
RTCStatsVerifier& verifier) { RTCStatsVerifier& verifier) {
verifier.TestMemberIsDefined(stream.ssrc); verifier.TestMemberIsDefined(stream.ssrc);
verifier.TestMemberIsDefined(stream.kind); verifier.TestMemberIsDefined(stream.kind);
@ -735,14 +735,14 @@ class RTCStatsReportVerifier {
verifier.TestMemberIsIDReference(stream.codec_id, RTCCodecStats::kType); verifier.TestMemberIsIDReference(stream.codec_id, RTCCodecStats::kType);
} }
void VerifyRTCSentRTPStreamStats(const RTCSentRtpStreamStats& sent_stream, void VerifyRTCSentRtpStreamStats(const RTCSentRtpStreamStats& sent_stream,
RTCStatsVerifier& verifier) { RTCStatsVerifier& verifier) {
VerifyRTCRTPStreamStats(sent_stream, verifier); VerifyRTCRtpStreamStats(sent_stream, verifier);
verifier.TestMemberIsDefined(sent_stream.packets_sent); verifier.TestMemberIsDefined(sent_stream.packets_sent);
verifier.TestMemberIsDefined(sent_stream.bytes_sent); verifier.TestMemberIsDefined(sent_stream.bytes_sent);
} }
bool VerifyRTCInboundRTPStreamStats( bool VerifyRTCInboundRtpStreamStats(
const RTCInboundRTPStreamStats& inbound_stream) { const RTCInboundRTPStreamStats& inbound_stream) {
RTCStatsVerifier verifier(report_.get(), &inbound_stream); RTCStatsVerifier verifier(report_.get(), &inbound_stream);
VerifyRTCReceivedRtpStreamStats(inbound_stream, verifier); VerifyRTCReceivedRtpStreamStats(inbound_stream, verifier);
@ -920,10 +920,10 @@ class RTCStatsReportVerifier {
return verifier.ExpectAllMembersSuccessfullyTested(); return verifier.ExpectAllMembersSuccessfullyTested();
} }
bool VerifyRTCOutboundRTPStreamStats( bool VerifyRTCOutboundRtpStreamStats(
const RTCOutboundRTPStreamStats& outbound_stream) { const RTCOutboundRTPStreamStats& outbound_stream) {
RTCStatsVerifier verifier(report_.get(), &outbound_stream); RTCStatsVerifier verifier(report_.get(), &outbound_stream);
VerifyRTCRTPStreamStats(outbound_stream, verifier); VerifyRTCRtpStreamStats(outbound_stream, verifier);
verifier.TestMemberIsDefined(outbound_stream.mid); verifier.TestMemberIsDefined(outbound_stream.mid);
verifier.TestMemberIsDefined(outbound_stream.active); verifier.TestMemberIsDefined(outbound_stream.active);
if (outbound_stream.kind.is_defined() && *outbound_stream.kind == "video") { if (outbound_stream.kind.is_defined() && *outbound_stream.kind == "video") {
@ -1023,7 +1023,7 @@ class RTCStatsReportVerifier {
void VerifyRTCReceivedRtpStreamStats( void VerifyRTCReceivedRtpStreamStats(
const RTCReceivedRtpStreamStats& received_rtp, const RTCReceivedRtpStreamStats& received_rtp,
RTCStatsVerifier& verifier) { RTCStatsVerifier& verifier) {
VerifyRTCRTPStreamStats(received_rtp, verifier); VerifyRTCRtpStreamStats(received_rtp, verifier);
verifier.TestMemberIsNonNegative<double>(received_rtp.jitter); verifier.TestMemberIsNonNegative<double>(received_rtp.jitter);
verifier.TestMemberIsDefined(received_rtp.packets_lost); verifier.TestMemberIsDefined(received_rtp.packets_lost);
} }
@ -1044,11 +1044,11 @@ class RTCStatsReportVerifier {
return verifier.ExpectAllMembersSuccessfullyTested(); return verifier.ExpectAllMembersSuccessfullyTested();
} }
bool VerifyRTCRemoteOutboundRTPStreamStats( bool VerifyRTCRemoteOutboundRtpStreamStats(
const RTCRemoteOutboundRtpStreamStats& remote_outbound_stream) { const RTCRemoteOutboundRtpStreamStats& remote_outbound_stream) {
RTCStatsVerifier verifier(report_.get(), &remote_outbound_stream); RTCStatsVerifier verifier(report_.get(), &remote_outbound_stream);
VerifyRTCRTPStreamStats(remote_outbound_stream, verifier); VerifyRTCRtpStreamStats(remote_outbound_stream, verifier);
VerifyRTCSentRTPStreamStats(remote_outbound_stream, verifier); VerifyRTCSentRtpStreamStats(remote_outbound_stream, verifier);
verifier.TestMemberIsIDReference(remote_outbound_stream.local_id, verifier.TestMemberIsIDReference(remote_outbound_stream.local_id,
RTCOutboundRTPStreamStats::kType); RTCOutboundRTPStreamStats::kType);
verifier.TestMemberIsNonNegative<double>( verifier.TestMemberIsNonNegative<double>(

View file

@ -396,7 +396,7 @@ RTCPeerConnectionStats::RTCPeerConnectionStats(
RTCPeerConnectionStats::~RTCPeerConnectionStats() {} RTCPeerConnectionStats::~RTCPeerConnectionStats() {}
// clang-format off // clang-format off
WEBRTC_RTCSTATS_IMPL(RTCRTPStreamStats, RTCStats, "rtp", WEBRTC_RTCSTATS_IMPL(RTCRtpStreamStats, RTCStats, "rtp",
&ssrc, &ssrc,
&kind, &kind,
&track_id, &track_id,
@ -405,7 +405,7 @@ WEBRTC_RTCSTATS_IMPL(RTCRTPStreamStats, RTCStats, "rtp",
&media_type) &media_type)
// clang-format on // clang-format on
RTCRTPStreamStats::RTCRTPStreamStats(std::string id, Timestamp timestamp) RTCRtpStreamStats::RTCRtpStreamStats(std::string id, Timestamp timestamp)
: RTCStats(std::move(id), timestamp), : RTCStats(std::move(id), timestamp),
ssrc("ssrc"), ssrc("ssrc"),
kind("kind"), kind("kind"),
@ -414,20 +414,20 @@ RTCRTPStreamStats::RTCRTPStreamStats(std::string id, Timestamp timestamp)
codec_id("codecId"), codec_id("codecId"),
media_type("mediaType") {} media_type("mediaType") {}
RTCRTPStreamStats::RTCRTPStreamStats(const RTCRTPStreamStats& other) = default; RTCRtpStreamStats::RTCRtpStreamStats(const RTCRtpStreamStats& other) = default;
RTCRTPStreamStats::~RTCRTPStreamStats() {} RTCRtpStreamStats::~RTCRtpStreamStats() {}
// clang-format off // clang-format off
WEBRTC_RTCSTATS_IMPL( WEBRTC_RTCSTATS_IMPL(
RTCReceivedRtpStreamStats, RTCRTPStreamStats, "received-rtp", RTCReceivedRtpStreamStats, RTCRtpStreamStats, "received-rtp",
&jitter, &jitter,
&packets_lost) &packets_lost)
// clang-format on // clang-format on
RTCReceivedRtpStreamStats::RTCReceivedRtpStreamStats(std::string id, RTCReceivedRtpStreamStats::RTCReceivedRtpStreamStats(std::string id,
Timestamp timestamp) Timestamp timestamp)
: RTCRTPStreamStats(std::move(id), timestamp), : RTCRtpStreamStats(std::move(id), timestamp),
jitter("jitter"), jitter("jitter"),
packets_lost("packetsLost") {} packets_lost("packetsLost") {}
@ -438,14 +438,14 @@ RTCReceivedRtpStreamStats::~RTCReceivedRtpStreamStats() {}
// clang-format off // clang-format off
WEBRTC_RTCSTATS_IMPL( WEBRTC_RTCSTATS_IMPL(
RTCSentRtpStreamStats, RTCRTPStreamStats, "sent-rtp", RTCSentRtpStreamStats, RTCRtpStreamStats, "sent-rtp",
&packets_sent, &packets_sent,
&bytes_sent) &bytes_sent)
// clang-format on // clang-format on
RTCSentRtpStreamStats::RTCSentRtpStreamStats(std::string id, RTCSentRtpStreamStats::RTCSentRtpStreamStats(std::string id,
Timestamp timestamp) Timestamp timestamp)
: RTCRTPStreamStats(std::move(id), timestamp), : RTCRtpStreamStats(std::move(id), timestamp),
packets_sent("packetsSent"), packets_sent("packetsSent"),
bytes_sent("bytesSent") {} bytes_sent("bytesSent") {}
@ -589,14 +589,12 @@ RTCInboundRTPStreamStats::~RTCInboundRTPStreamStats() {}
// clang-format off // clang-format off
WEBRTC_RTCSTATS_IMPL( WEBRTC_RTCSTATS_IMPL(
RTCOutboundRTPStreamStats, RTCRTPStreamStats, "outbound-rtp", RTCOutboundRTPStreamStats, RTCSentRtpStreamStats, "outbound-rtp",
&media_source_id, &media_source_id,
&remote_id, &remote_id,
&mid, &mid,
&rid, &rid,
&packets_sent,
&retransmitted_packets_sent, &retransmitted_packets_sent,
&bytes_sent,
&header_bytes_sent, &header_bytes_sent,
&retransmitted_bytes_sent, &retransmitted_bytes_sent,
&target_bitrate, &target_bitrate,
@ -626,14 +624,12 @@ WEBRTC_RTCSTATS_IMPL(
RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(std::string id, RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(std::string id,
Timestamp timestamp) Timestamp timestamp)
: RTCRTPStreamStats(std::move(id), timestamp), : RTCSentRtpStreamStats(std::move(id), timestamp),
media_source_id("mediaSourceId"), media_source_id("mediaSourceId"),
remote_id("remoteId"), remote_id("remoteId"),
mid("mid"), mid("mid"),
rid("rid"), rid("rid"),
packets_sent("packetsSent"),
retransmitted_packets_sent("retransmittedPacketsSent"), retransmitted_packets_sent("retransmittedPacketsSent"),
bytes_sent("bytesSent"),
header_bytes_sent("headerBytesSent"), header_bytes_sent("headerBytesSent"),
retransmitted_bytes_sent("retransmittedBytesSent"), retransmitted_bytes_sent("retransmittedBytesSent"),
target_bitrate("targetBitrate"), target_bitrate("targetBitrate"),