diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h index 80536fb073..2b6c622f27 100644 --- a/api/stats/rtcstats_objects.h +++ b/api/stats/rtcstats_objects.h @@ -286,35 +286,36 @@ class RTC_EXPORT RTCRemoteIceCandidateStats final const char* type() const override; }; -// https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats -// TODO(https://crbug.com/webrtc/14172): Deprecate and remove. -class RTC_EXPORT RTCMediaStreamStats final : public RTCStats { +// TODO(https://crbug.com/webrtc/14419): Delete this class, it's deprecated. +class RTC_EXPORT DEPRECATED_RTCMediaStreamStats final : public RTCStats { public: WEBRTC_RTCSTATS_DECL(); - RTCMediaStreamStats(const std::string& id, int64_t timestamp_us); - RTCMediaStreamStats(std::string&& id, int64_t timestamp_us); - RTCMediaStreamStats(const RTCMediaStreamStats& other); - ~RTCMediaStreamStats() override; + DEPRECATED_RTCMediaStreamStats(const std::string& id, int64_t timestamp_us); + DEPRECATED_RTCMediaStreamStats(std::string&& id, int64_t timestamp_us); + DEPRECATED_RTCMediaStreamStats(const DEPRECATED_RTCMediaStreamStats& other); + ~DEPRECATED_RTCMediaStreamStats() override; RTCStatsMember stream_identifier; RTCStatsMember> track_ids; }; +using RTCMediaStreamStats [[deprecated("bugs.webrtc.org/14419")]] = + DEPRECATED_RTCMediaStreamStats; -// TODO(https://crbug.com/webrtc/14175): Deprecate and remove in favor of -// RTCMediaSourceStats/RTCOutboundRtpStreamStats and RTCInboundRtpStreamStats. -class RTC_EXPORT RTCMediaStreamTrackStats final : public RTCStats { +// TODO(https://crbug.com/webrtc/14175): Delete this class, it's deprecated. +class RTC_EXPORT DEPRECATED_RTCMediaStreamTrackStats final : public RTCStats { public: WEBRTC_RTCSTATS_DECL(); - RTCMediaStreamTrackStats(const std::string& id, - int64_t timestamp_us, - const char* kind); - RTCMediaStreamTrackStats(std::string&& id, - int64_t timestamp_us, - const char* kind); - RTCMediaStreamTrackStats(const RTCMediaStreamTrackStats& other); - ~RTCMediaStreamTrackStats() override; + DEPRECATED_RTCMediaStreamTrackStats(const std::string& id, + int64_t timestamp_us, + const char* kind); + DEPRECATED_RTCMediaStreamTrackStats(std::string&& id, + int64_t timestamp_us, + const char* kind); + DEPRECATED_RTCMediaStreamTrackStats( + const DEPRECATED_RTCMediaStreamTrackStats& other); + ~DEPRECATED_RTCMediaStreamTrackStats() override; RTCStatsMember track_identifier; RTCStatsMember media_source_id; @@ -362,6 +363,8 @@ class RTC_EXPORT RTCMediaStreamTrackStats final : public RTCStats { RTCNonStandardStatsMember total_freezes_duration; RTCNonStandardStatsMember total_pauses_duration; }; +using RTCMediaStreamTrackStats [[deprecated("bugs.webrtc.org/14175")]] = + DEPRECATED_RTCMediaStreamTrackStats; // https://w3c.github.io/webrtc-stats/#pcstats-dict* class RTC_EXPORT RTCPeerConnectionStats final : public RTCStats { diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc index 19cc6ce3cf..7fa94527f1 100644 --- a/pc/peer_connection_integrationtest.cc +++ b/pc/peer_connection_integrationtest.cc @@ -1364,7 +1364,8 @@ TEST_P(PeerConnectionIntegrationTest, NewGetStatsManyAudioAndManyVideoStreams) { } ASSERT_TRUE(stat->track_id.is_defined()); const auto* track_stat = - caller_report->GetAs(*stat->track_id); + caller_report->GetAs( + *stat->track_id); ASSERT_TRUE(track_stat); outbound_track_ids.push_back(*track_stat->track_identifier); } @@ -1388,7 +1389,8 @@ TEST_P(PeerConnectionIntegrationTest, NewGetStatsManyAudioAndManyVideoStreams) { } ASSERT_TRUE(stat->track_id.is_defined()); const auto* track_stat = - callee_report->GetAs(*stat->track_id); + callee_report->GetAs( + *stat->track_id); ASSERT_TRUE(track_stat); inbound_track_ids.push_back(*track_stat->track_identifier); } @@ -1465,7 +1467,8 @@ TEST_P(PeerConnectionIntegrationTest, callee()->NewGetStats(); ASSERT_NE(nullptr, report); - auto media_stats = report->GetStatsOfType(); + auto media_stats = + report->GetStatsOfType(); auto audio_index = FindFirstMediaStatsIndexByKind("audio", media_stats); ASSERT_GE(audio_index, 0); EXPECT_TRUE(media_stats[audio_index]->audio_level.is_defined()); @@ -1483,11 +1486,11 @@ void ModifySsrcs(cricket::SessionDescription* desc) { } } -// Test that the "RTCMediaSteamTrackStats" object is updated correctly when -// SSRCs are unsignaled, and the SSRC of the received (audio) stream changes. -// This should result in two "RTCInboundRTPStreamStats", but only one -// "RTCMediaStreamTrackStats", whose counters go up continuously rather than -// being reset to 0 once the SSRC change occurs. +// Test that the "DEPRECATED_RTCMediaStreamTrackStats" object is updated +// correctly when SSRCs are unsignaled, and the SSRC of the received (audio) +// stream changes. This should result in two "RTCInboundRTPStreamStats", but +// only one "DEPRECATED_RTCMediaStreamTrackStats", whose counters go up +// continuously rather than being reset to 0 once the SSRC change occurs. // // Regression test for this bug: // https://bugs.chromium.org/p/webrtc/issues/detail?id=8158 @@ -1519,7 +1522,8 @@ TEST_P(PeerConnectionIntegrationTest, rtc::scoped_refptr report = callee()->NewGetStats(); ASSERT_NE(nullptr, report); - auto track_stats = report->GetStatsOfType(); + auto track_stats = + report->GetStatsOfType(); ASSERT_EQ(1U, track_stats.size()); ASSERT_TRUE(track_stats[0]->total_samples_received.is_defined()); ASSERT_GT(*track_stats[0]->total_samples_received, 0U); @@ -1539,7 +1543,8 @@ TEST_P(PeerConnectionIntegrationTest, report = callee()->NewGetStats(); ASSERT_NE(nullptr, report); - track_stats = report->GetStatsOfType(); + track_stats = + report->GetStatsOfType(); ASSERT_EQ(1U, track_stats.size()); ASSERT_TRUE(track_stats[0]->total_samples_received.is_defined()); // The "total samples received" stat should only be greater than it was @@ -2878,8 +2883,9 @@ TEST_P(PeerConnectionIntegrationTest, DisableAndEnableAudioPlayout) { double GetAudioEnergyStat(PeerConnectionIntegrationWrapper* pc) { auto report = pc->NewGetStats(); auto track_stats_list = - report->GetStatsOfType(); - const webrtc::RTCMediaStreamTrackStats* remote_track_stats = nullptr; + report->GetStatsOfType(); + const webrtc::DEPRECATED_RTCMediaStreamTrackStats* remote_track_stats = + nullptr; for (const auto* track_stats : track_stats_list) { if (track_stats->remote_source.is_defined() && *track_stats->remote_source) { diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc index 014ffa43dd..53da849eea 100644 --- a/pc/rtc_stats_collector.cc +++ b/pc/rtc_stats_collector.cc @@ -99,7 +99,7 @@ std::string RTCIceCandidatePairStatsIDFromConnectionInfo( } // `direction` is either kDirectionInbound or kDirectionOutbound. -std::string RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( +std::string DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( const char direction, int attachment_id) { char buf[1024]; @@ -398,7 +398,7 @@ std::string GetCodecIdAndMaybeCreateCodecStats( void SetMediaStreamTrackStatsFromMediaStreamTrackInterface( const MediaStreamTrackInterface& track, - RTCMediaStreamTrackStats* track_stats) { + DEPRECATED_RTCMediaStreamTrackStats* track_stats) { track_stats->track_identifier = track.id(); track_stats->ended = (track.state() == MediaStreamTrackInterface::kEnded); } @@ -977,15 +977,15 @@ void SetAudioProcessingStats(StatsType* stats, } } -std::unique_ptr +std::unique_ptr ProduceMediaStreamTrackStatsFromVoiceSenderInfo( int64_t timestamp_us, AudioTrackInterface& audio_track, const cricket::VoiceSenderInfo& voice_sender_info, int attachment_id) { - std::unique_ptr audio_track_stats( - std::make_unique( - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + std::unique_ptr audio_track_stats( + std::make_unique( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, attachment_id), timestamp_us, RTCMediaStreamTrackKind::kAudio)); SetMediaStreamTrackStatsFromMediaStreamTrackInterface( @@ -1010,7 +1010,7 @@ ProduceMediaStreamTrackStatsFromVoiceSenderInfo( return audio_track_stats; } -std::unique_ptr +std::unique_ptr ProduceMediaStreamTrackStatsFromVoiceReceiverInfo( int64_t timestamp_us, const AudioTrackInterface& audio_track, @@ -1018,9 +1018,9 @@ ProduceMediaStreamTrackStatsFromVoiceReceiverInfo( int attachment_id) { // Since receiver tracks can't be reattached, we use the SSRC as // an attachment identifier. - std::unique_ptr audio_track_stats( - std::make_unique( - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + std::unique_ptr audio_track_stats( + std::make_unique( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, attachment_id), timestamp_us, RTCMediaStreamTrackKind::kAudio)); SetMediaStreamTrackStatsFromMediaStreamTrackInterface( @@ -1070,15 +1070,15 @@ ProduceMediaStreamTrackStatsFromVoiceReceiverInfo( return audio_track_stats; } -std::unique_ptr +std::unique_ptr ProduceMediaStreamTrackStatsFromVideoSenderInfo( int64_t timestamp_us, const VideoTrackInterface& video_track, const cricket::VideoSenderInfo& video_sender_info, int attachment_id) { - std::unique_ptr video_track_stats( - std::make_unique( - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + std::unique_ptr video_track_stats( + std::make_unique( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, attachment_id), timestamp_us, RTCMediaStreamTrackKind::kVideo)); SetMediaStreamTrackStatsFromMediaStreamTrackInterface( @@ -1099,15 +1099,15 @@ ProduceMediaStreamTrackStatsFromVideoSenderInfo( return video_track_stats; } -std::unique_ptr +std::unique_ptr ProduceMediaStreamTrackStatsFromVideoReceiverInfo( int64_t timestamp_us, const VideoTrackInterface& video_track, const cricket::VideoReceiverInfo& video_receiver_info, int attachment_id) { - std::unique_ptr video_track_stats( - std::make_unique( - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + std::unique_ptr video_track_stats( + std::make_unique( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, attachment_id), timestamp_us, RTCMediaStreamTrackKind::kVideo)); SetMediaStreamTrackStatsFromMediaStreamTrackInterface( @@ -1186,7 +1186,7 @@ void ProduceSenderMediaTrackStats( << sender->ssrc(); } } - std::unique_ptr audio_track_stats = + std::unique_ptr audio_track_stats = ProduceMediaStreamTrackStatsFromVoiceSenderInfo( timestamp_us, *track, *voice_sender_info, sender->AttachmentId()); report->AddStats(std::move(audio_track_stats)); @@ -1213,7 +1213,7 @@ void ProduceSenderMediaTrackStats( << "No video sender info for sender with ssrc " << sender->ssrc(); } } - std::unique_ptr video_track_stats = + std::unique_ptr video_track_stats = ProduceMediaStreamTrackStatsFromVideoSenderInfo( timestamp_us, *track, *video_sender_info, sender->AttachmentId()); report->AddStats(std::move(video_track_stats)); @@ -1238,7 +1238,7 @@ void ProduceReceiverMediaTrackStats( if (!voice_receiver_info) { continue; } - std::unique_ptr audio_track_stats = + std::unique_ptr audio_track_stats = ProduceMediaStreamTrackStatsFromVoiceReceiverInfo( timestamp_us, *track, *voice_receiver_info, receiver->AttachmentId()); @@ -1251,7 +1251,7 @@ void ProduceReceiverMediaTrackStats( if (!video_receiver_info) { continue; } - std::unique_ptr video_track_stats = + std::unique_ptr video_track_stats = ProduceMediaStreamTrackStatsFromVideoReceiverInfo( timestamp_us, *track, *video_receiver_info, receiver->AttachmentId()); @@ -1276,7 +1276,7 @@ rtc::scoped_refptr CreateReportFilteredBySelector( // Because we do not implement sender stats, we look at outbound-rtp(s) // that reference the track attachment stats for the sender instead. std::string track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, sender_selector->AttachmentId()); for (const auto& stats : *report) { if (stats.type() != RTCOutboundRTPStreamStats::kType) @@ -1296,7 +1296,7 @@ rtc::scoped_refptr CreateReportFilteredBySelector( // Because we do not implement receiver stats, we look at inbound-rtp(s) // that reference the track attachment stats for the receiver instead. std::string track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, receiver_selector->AttachmentId()); for (const auto& stats : *report) { if (stats.type() != RTCInboundRTPStreamStats::kType) @@ -1782,7 +1782,7 @@ void RTCStatsCollector::ProduceMediaStreamStats_s( for (const auto& stats : transceiver_stats_infos_) { for (const auto& sender : stats.transceiver->senders()) { std::string track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, sender->internal()->AttachmentId()); for (auto& stream_id : sender->stream_ids()) { track_ids[stream_id].push_back(track_id); @@ -1790,7 +1790,7 @@ void RTCStatsCollector::ProduceMediaStreamStats_s( } for (const auto& receiver : stats.transceiver->receivers()) { std::string track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, receiver->internal()->AttachmentId()); for (auto& stream : receiver->streams()) { track_ids[stream->id()].push_back(track_id); @@ -1800,9 +1800,9 @@ void RTCStatsCollector::ProduceMediaStreamStats_s( // Build stats for each stream ID known. for (auto& it : track_ids) { - std::unique_ptr stream_stats( - std::make_unique("DEPRECATED_S" + it.first, - timestamp_us)); + std::unique_ptr stream_stats( + std::make_unique( + "DEPRECATED_S" + it.first, timestamp_us)); stream_stats->stream_identifier = it.first; stream_stats->track_ids = it.second; report->AddStats(std::move(stream_stats)); @@ -1994,7 +1994,7 @@ void RTCStatsCollector::ProduceAudioRTPStreamStats_n( stats.track_media_info_map.GetAudioTrack(voice_receiver_info); if (audio_track) { inbound_audio->track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, stats.track_media_info_map .GetAttachmentIdByTrack(audio_track.get()) .value()); @@ -2044,7 +2044,7 @@ void RTCStatsCollector::ProduceAudioRTPStreamStats_n( stats.track_media_info_map.GetAttachmentIdByTrack(audio_track.get()) .value(); outbound_audio->track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, attachment_id); outbound_audio->media_source_id = RTCMediaSourceStatsIDFromKindAndAttachment(cricket::MEDIA_TYPE_AUDIO, @@ -2106,7 +2106,7 @@ void RTCStatsCollector::ProduceVideoRTPStreamStats_n( stats.track_media_info_map.GetVideoTrack(video_receiver_info); if (video_track) { inbound_video->track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionInbound, stats.track_media_info_map .GetAttachmentIdByTrack(video_track.get()) .value()); @@ -2138,7 +2138,7 @@ void RTCStatsCollector::ProduceVideoRTPStreamStats_n( stats.track_media_info_map.GetAttachmentIdByTrack(video_track.get()) .value(); outbound_video->track_id = - RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( + DEPRECATED_RTCMediaStreamTrackStatsIDFromDirectionAndAttachment( kDirectionOutbound, attachment_id); outbound_video->media_source_id = RTCMediaSourceStatsIDFromKindAndAttachment(cricket::MEDIA_TYPE_VIDEO, diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc index 31083db94e..ec799a2390 100644 --- a/pc/rtc_stats_collector_unittest.cc +++ b/pc/rtc_stats_collector_unittest.cc @@ -109,11 +109,12 @@ void PrintTo(const RTCPeerConnectionStats& stats, ::std::ostream* os) { *os << stats.ToJson(); } -void PrintTo(const RTCMediaStreamStats& stats, ::std::ostream* os) { +void PrintTo(const DEPRECATED_RTCMediaStreamStats& stats, ::std::ostream* os) { *os << stats.ToJson(); } -void PrintTo(const RTCMediaStreamTrackStats& stats, ::std::ostream* os) { +void PrintTo(const DEPRECATED_RTCMediaStreamTrackStats& stats, + ::std::ostream* os) { *os << stats.ToJson(); } @@ -793,8 +794,9 @@ class RTCStatsCollectorTest : public ::testing::Test { EXPECT_TRUE(graph.full_report->Get(graph.remote_stream_id)); EXPECT_TRUE(graph.full_report->Get(graph.peer_connection_id)); EXPECT_TRUE(graph.full_report->Get(graph.media_source_id)); - const auto& sender_track = graph.full_report->Get(graph.sender_track_id) - ->cast_to(); + const auto& sender_track = + graph.full_report->Get(graph.sender_track_id) + ->cast_to(); EXPECT_EQ(*sender_track.media_source_id, graph.media_source_id); const auto& outbound_rtp = graph.full_report->Get(graph.outbound_rtp_id) ->cast_to(); @@ -909,8 +911,9 @@ class RTCStatsCollectorTest : public ::testing::Test { // `graph.remote_outbound_rtp_id` is omitted on purpose so that expectations // can be added by the caller depending on what value it sets for the // `add_remote_outbound_stats` argument. - const auto& sender_track = graph.full_report->Get(graph.sender_track_id) - ->cast_to(); + const auto& sender_track = + graph.full_report->Get(graph.sender_track_id) + ->cast_to(); EXPECT_EQ(*sender_track.media_source_id, graph.media_source_id); const auto& outbound_rtp = graph.full_report->Get(graph.outbound_rtp_id) ->cast_to(); @@ -2176,21 +2179,22 @@ TEST_F(RTCStatsCollectorTest, rtc::scoped_refptr report = stats_->GetStatsReport(); - RTCMediaStreamStats expected_local_stream( - IdForType(report.get()), report->timestamp_us()); + DEPRECATED_RTCMediaStreamStats expected_local_stream( + IdForType(report.get()), + report->timestamp_us()); expected_local_stream.stream_identifier = local_stream->id(); expected_local_stream.track_ids = { - IdForType(report.get())}; + IdForType(report.get())}; ASSERT_TRUE(report->Get(expected_local_stream.id())) << "Did not find " << expected_local_stream.id() << " in " << report->ToJson(); - EXPECT_EQ( - expected_local_stream, - report->Get(expected_local_stream.id())->cast_to()); + EXPECT_EQ(expected_local_stream, + report->Get(expected_local_stream.id()) + ->cast_to()); - RTCMediaStreamTrackStats expected_local_audio_track_ssrc1( - IdForType(report.get()), report->timestamp_us(), - RTCMediaStreamTrackKind::kAudio); + DEPRECATED_RTCMediaStreamTrackStats expected_local_audio_track_ssrc1( + IdForType(report.get()), + report->timestamp_us(), RTCMediaStreamTrackKind::kAudio); expected_local_audio_track_ssrc1.track_identifier = local_audio_track->id(); expected_local_audio_track_ssrc1.media_source_id = "SA11"; // Attachment ID = SSRC + 10 @@ -2204,7 +2208,7 @@ TEST_F(RTCStatsCollectorTest, << report->ToJson(); EXPECT_EQ(expected_local_audio_track_ssrc1, report->Get(expected_local_audio_track_ssrc1.id()) - ->cast_to()); + ->cast_to()); } TEST_F(RTCStatsCollectorTest, @@ -2248,21 +2252,22 @@ TEST_F(RTCStatsCollectorTest, rtc::scoped_refptr report = stats_->GetStatsReport(); - RTCMediaStreamStats expected_remote_stream( - IdForType(report.get()), report->timestamp_us()); + DEPRECATED_RTCMediaStreamStats expected_remote_stream( + IdForType(report.get()), + report->timestamp_us()); expected_remote_stream.stream_identifier = remote_stream->id(); expected_remote_stream.track_ids = std::vector( - {IdForType(report.get())}); + {IdForType(report.get())}); ASSERT_TRUE(report->Get(expected_remote_stream.id())) << "Did not find " << expected_remote_stream.id() << " in " << report->ToJson(); - EXPECT_EQ( - expected_remote_stream, - report->Get(expected_remote_stream.id())->cast_to()); + EXPECT_EQ(expected_remote_stream, + report->Get(expected_remote_stream.id()) + ->cast_to()); - RTCMediaStreamTrackStats expected_remote_audio_track( - IdForType(report.get()), report->timestamp_us(), - RTCMediaStreamTrackKind::kAudio); + DEPRECATED_RTCMediaStreamTrackStats expected_remote_audio_track( + IdForType(report.get()), + report->timestamp_us(), RTCMediaStreamTrackKind::kAudio); expected_remote_audio_track.track_identifier = remote_audio_track->id(); // `expected_remote_audio_track.media_source_id` should be undefined // because the track is remote. @@ -2290,7 +2295,7 @@ TEST_F(RTCStatsCollectorTest, ASSERT_TRUE(report->Get(expected_remote_audio_track.id())); EXPECT_EQ(expected_remote_audio_track, report->Get(expected_remote_audio_track.id()) - ->cast_to()); + ->cast_to()); } TEST_F(RTCStatsCollectorTest, @@ -2321,23 +2326,25 @@ TEST_F(RTCStatsCollectorTest, rtc::scoped_refptr report = stats_->GetStatsReport(); - auto stats_of_my_type = report->GetStatsOfType(); + auto stats_of_my_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_my_type.size()) << "No stream in " << report->ToJson(); - auto stats_of_track_type = report->GetStatsOfType(); + auto stats_of_track_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_track_type.size()) << "Wrong number of tracks in " << report->ToJson(); - RTCMediaStreamStats expected_local_stream(stats_of_my_type[0]->id(), - report->timestamp_us()); + DEPRECATED_RTCMediaStreamStats expected_local_stream( + stats_of_my_type[0]->id(), report->timestamp_us()); expected_local_stream.stream_identifier = local_stream->id(); expected_local_stream.track_ids = std::vector({stats_of_track_type[0]->id()}); ASSERT_TRUE(report->Get(expected_local_stream.id())); - EXPECT_EQ( - expected_local_stream, - report->Get(expected_local_stream.id())->cast_to()); + EXPECT_EQ(expected_local_stream, + report->Get(expected_local_stream.id()) + ->cast_to()); - RTCMediaStreamTrackStats expected_local_video_track_ssrc1( + DEPRECATED_RTCMediaStreamTrackStats expected_local_video_track_ssrc1( stats_of_track_type[0]->id(), report->timestamp_us(), RTCMediaStreamTrackKind::kVideo); expected_local_video_track_ssrc1.track_identifier = local_video_track->id(); @@ -2353,7 +2360,7 @@ TEST_F(RTCStatsCollectorTest, ASSERT_TRUE(report->Get(expected_local_video_track_ssrc1.id())); EXPECT_EQ(expected_local_video_track_ssrc1, report->Get(expected_local_video_track_ssrc1.id()) - ->cast_to()); + ->cast_to()); } TEST_F(RTCStatsCollectorTest, @@ -2397,24 +2404,26 @@ TEST_F(RTCStatsCollectorTest, rtc::scoped_refptr report = stats_->GetStatsReport(); - auto stats_of_my_type = report->GetStatsOfType(); + auto stats_of_my_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_my_type.size()) << "No stream in " << report->ToJson(); - auto stats_of_track_type = report->GetStatsOfType(); + auto stats_of_track_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_track_type.size()) << "Wrong number of tracks in " << report->ToJson(); ASSERT_TRUE(*(stats_of_track_type[0]->remote_source)); - RTCMediaStreamStats expected_remote_stream(stats_of_my_type[0]->id(), - report->timestamp_us()); + DEPRECATED_RTCMediaStreamStats expected_remote_stream( + stats_of_my_type[0]->id(), report->timestamp_us()); expected_remote_stream.stream_identifier = remote_stream->id(); expected_remote_stream.track_ids = std::vector({stats_of_track_type[0]->id()}); ASSERT_TRUE(report->Get(expected_remote_stream.id())); - EXPECT_EQ( - expected_remote_stream, - report->Get(expected_remote_stream.id())->cast_to()); + EXPECT_EQ(expected_remote_stream, + report->Get(expected_remote_stream.id()) + ->cast_to()); - RTCMediaStreamTrackStats expected_remote_video_track_ssrc3( + DEPRECATED_RTCMediaStreamTrackStats expected_remote_video_track_ssrc3( stats_of_track_type[0]->id(), report->timestamp_us(), RTCMediaStreamTrackKind::kVideo); expected_remote_video_track_ssrc3.track_identifier = @@ -2442,7 +2451,7 @@ TEST_F(RTCStatsCollectorTest, ASSERT_TRUE(report->Get(expected_remote_video_track_ssrc3.id())); EXPECT_EQ(expected_remote_video_track_ssrc3, report->Get(expected_remote_video_track_ssrc3.id()) - ->cast_to()); + ->cast_to()); } TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Audio) { @@ -2499,7 +2508,8 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Audio) { rtc::scoped_refptr report = stats_->GetStatsReport(); - auto stats_of_track_type = report->GetStatsOfType(); + auto stats_of_track_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_track_type.size()); RTCInboundRTPStreamStats expected_audio("ITTransportName1A1", @@ -2638,7 +2648,8 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { expected_video.kind = "video"; expected_video.track_identifier = "RemoteVideoTrackID"; expected_video.mid = "VideoMid"; - expected_video.track_id = IdForType(report.get()); + expected_video.track_id = + IdForType(report.get()); expected_video.transport_id = "TTransportName1"; expected_video.codec_id = "CITTransportName1_42"; expected_video.fir_count = 5; @@ -2742,7 +2753,8 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) { expected_audio.ssrc = 1; expected_audio.media_type = "audio"; expected_audio.kind = "audio"; - expected_audio.track_id = IdForType(report.get()); + expected_audio.track_id = + IdForType(report.get()); expected_audio.transport_id = "TTransportName1"; expected_audio.codec_id = "COTTransportName1_42"; expected_audio.packets_sent = 2; @@ -2821,7 +2833,8 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { auto stats_of_my_type = report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_my_type.size()); - auto stats_of_track_type = report->GetStatsOfType(); + auto stats_of_track_type = + report->GetStatsOfType(); ASSERT_EQ(1U, stats_of_track_type.size()); RTCOutboundRTPStreamStats expected_video(stats_of_my_type[0]->id(), @@ -3172,7 +3185,8 @@ TEST_F(RTCStatsCollectorTest, CollectNoStreamRTCOutboundRTPStreamStats_Audio) { expected_audio.ssrc = 1; expected_audio.media_type = "audio"; expected_audio.kind = "audio"; - expected_audio.track_id = IdForType(report.get()); + expected_audio.track_id = + IdForType(report.get()); expected_audio.transport_id = "TTransportName1"; expected_audio.codec_id = "COTTransportName1_42"; expected_audio.packets_sent = 2; @@ -3710,9 +3724,9 @@ TEST_F(RTCStatsCollectorTest, CollectEchoReturnLossFromTrackAudioProcessor) { rtc::scoped_refptr report = stats_->GetStatsReport(); - RTCMediaStreamTrackStats expected_local_audio_track_ssrc1( - IdForType(report.get()), report->timestamp_us(), - RTCMediaStreamTrackKind::kAudio); + DEPRECATED_RTCMediaStreamTrackStats expected_local_audio_track_ssrc1( + IdForType(report.get()), + report->timestamp_us(), RTCMediaStreamTrackKind::kAudio); expected_local_audio_track_ssrc1.track_identifier = local_audio_track->id(); expected_local_audio_track_ssrc1.media_source_id = "SA11"; // Attachment ID = SSRC + 10 @@ -3726,7 +3740,7 @@ TEST_F(RTCStatsCollectorTest, CollectEchoReturnLossFromTrackAudioProcessor) { << report->ToJson(); EXPECT_EQ(expected_local_audio_track_ssrc1, report->Get(expected_local_audio_track_ssrc1.id()) - ->cast_to()); + ->cast_to()); RTCAudioSourceStats expected_audio("SA11", report->timestamp_us()); expected_audio.track_identifier = "LocalAudioTrackID"; @@ -3832,8 +3846,8 @@ TEST_F(RTCStatsCollectorTest, StatsReportedOnZeroSsrc) { rtc::scoped_refptr report = stats_->GetStatsReport(); - std::vector track_stats = - report->GetStatsOfType(); + std::vector track_stats = + report->GetStatsOfType(); EXPECT_EQ(1U, track_stats.size()); std::vector rtp_stream_stats = @@ -3853,8 +3867,8 @@ TEST_F(RTCStatsCollectorTest, DoNotCrashOnSsrcChange) { // We do not generate any matching voice_sender_info stats. rtc::scoped_refptr report = stats_->GetStatsReport(); - std::vector track_stats = - report->GetStatsOfType(); + std::vector track_stats = + report->GetStatsOfType(); EXPECT_EQ(1U, track_stats.size()); } diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc index 0cecdeaf02..205faa33a1 100644 --- a/pc/rtc_stats_integrationtest.cc +++ b/pc/rtc_stats_integrationtest.cc @@ -339,8 +339,8 @@ class RTCStatsReportVerifier { stats_types.insert(RTCIceCandidatePairStats::kType); stats_types.insert(RTCLocalIceCandidateStats::kType); stats_types.insert(RTCRemoteIceCandidateStats::kType); - stats_types.insert(RTCMediaStreamStats::kType); - stats_types.insert(RTCMediaStreamTrackStats::kType); + stats_types.insert(DEPRECATED_RTCMediaStreamStats::kType); + stats_types.insert(DEPRECATED_RTCMediaStreamTrackStats::kType); stats_types.insert(RTCPeerConnectionStats::kType); stats_types.insert(RTCInboundRTPStreamStats::kType); stats_types.insert(RTCOutboundRTPStreamStats::kType); @@ -380,12 +380,12 @@ class RTCStatsReportVerifier { } else if (stats.type() == RTCRemoteIceCandidateStats::kType) { verify_successful &= VerifyRTCRemoteIceCandidateStats( stats.cast_to()); - } else if (stats.type() == RTCMediaStreamStats::kType) { - verify_successful &= - VerifyRTCMediaStreamStats(stats.cast_to()); - } else if (stats.type() == RTCMediaStreamTrackStats::kType) { - verify_successful &= VerifyRTCMediaStreamTrackStats( - stats.cast_to()); + } else if (stats.type() == DEPRECATED_RTCMediaStreamStats::kType) { + verify_successful &= DEPRECATED_VerifyRTCMediaStreamStats( + stats.cast_to()); + } else if (stats.type() == DEPRECATED_RTCMediaStreamTrackStats::kType) { + verify_successful &= VerLegacyifyRTCMediaStreamTrackStats( + stats.cast_to()); } else if (stats.type() == RTCPeerConnectionStats::kType) { verify_successful &= VerifyRTCPeerConnectionStats( stats.cast_to()); @@ -560,16 +560,17 @@ class RTCStatsReportVerifier { return VerifyRTCIceCandidateStats(remote_candidate); } - bool VerifyRTCMediaStreamStats(const RTCMediaStreamStats& media_stream) { + bool DEPRECATED_VerifyRTCMediaStreamStats( + const DEPRECATED_RTCMediaStreamStats& media_stream) { RTCStatsVerifier verifier(report_.get(), &media_stream); verifier.TestMemberIsDefined(media_stream.stream_identifier); - verifier.TestMemberIsIDReference(media_stream.track_ids, - RTCMediaStreamTrackStats::kType); + verifier.TestMemberIsIDReference( + media_stream.track_ids, DEPRECATED_RTCMediaStreamTrackStats::kType); return verifier.ExpectAllMembersSuccessfullyTested(); } - bool VerifyRTCMediaStreamTrackStats( - const RTCMediaStreamTrackStats& media_stream_track) { + bool VerLegacyifyRTCMediaStreamTrackStats( + const DEPRECATED_RTCMediaStreamTrackStats& media_stream_track) { RTCStatsVerifier verifier(report_.get(), &media_stream_track); verifier.TestMemberIsDefined(media_stream_track.track_identifier); verifier.TestMemberIsDefined(media_stream_track.remote_source); @@ -786,8 +787,8 @@ class RTCStatsReportVerifier { if (stream.type() == RTCInboundRTPStreamStats::kType || stream.type() == RTCOutboundRTPStreamStats::kType) { verifier.TestMemberIsDefined(stream.media_type); - verifier.TestMemberIsIDReference(stream.track_id, - RTCMediaStreamTrackStats::kType); + verifier.TestMemberIsIDReference( + stream.track_id, DEPRECATED_RTCMediaStreamTrackStats::kType); } else { verifier.TestMemberIsUndefined(stream.media_type); verifier.TestMemberIsUndefined(stream.track_id); @@ -1213,7 +1214,7 @@ TEST_F(RTCStatsIntegrationTest, GetStatsWithSenderSelector) { // TODO(hbos): Include RTCRtpContributingSourceStats when implemented. RTCInboundRTPStreamStats::kType, RTCPeerConnectionStats::kType, - RTCMediaStreamStats::kType, + DEPRECATED_RTCMediaStreamStats::kType, RTCDataChannelStats::kType, }; RTCStatsReportVerifier(report.get()).VerifyReport(allowed_missing_stats); @@ -1232,7 +1233,7 @@ TEST_F(RTCStatsIntegrationTest, GetStatsWithReceiverSelector) { // TODO(hbos): Include RTCRtpContributingSourceStats when implemented. RTCOutboundRTPStreamStats::kType, RTCPeerConnectionStats::kType, - RTCMediaStreamStats::kType, + DEPRECATED_RTCMediaStreamStats::kType, RTCDataChannelStats::kType, }; RTCStatsReportVerifier(report.get()).VerifyReport(allowed_missing_stats); diff --git a/pc/rtc_stats_traversal.cc b/pc/rtc_stats_traversal.cc index 279488f135..b3f6155e3f 100644 --- a/pc/rtc_stats_traversal.cc +++ b/pc/rtc_stats_traversal.cc @@ -91,11 +91,13 @@ std::vector GetStatsReferencedIds(const RTCStats& stats) { const auto& local_or_remote_candidate = static_cast(stats); AddIdIfDefined(local_or_remote_candidate.transport_id, &neighbor_ids); - } else if (type == RTCMediaStreamStats::kType) { - const auto& stream = static_cast(stats); + } else if (type == DEPRECATED_RTCMediaStreamStats::kType) { + const auto& stream = + static_cast(stats); AddIdsIfDefined(stream.track_ids, &neighbor_ids); - } else if (type == RTCMediaStreamTrackStats::kType) { - const auto& track = static_cast(stats); + } else if (type == DEPRECATED_RTCMediaStreamTrackStats::kType) { + const auto& track = + static_cast(stats); AddIdIfDefined(track.media_source_id, &neighbor_ids); } else if (type == RTCPeerConnectionStats::kType) { // RTCPeerConnectionStats does not have any neighbor references. diff --git a/pc/test/integration_test_helpers.cc b/pc/test/integration_test_helpers.cc index f6f38ad670..3201328e84 100644 --- a/pc/test/integration_test_helpers.cc +++ b/pc/test/integration_test_helpers.cc @@ -46,7 +46,7 @@ void RemoveSsrcsAndKeepMsids(cricket::SessionDescription* desc) { int FindFirstMediaStatsIndexByKind( const std::string& kind, - const std::vector& + const std::vector& media_stats_vec) { for (size_t i = 0; i < media_stats_vec.size(); i++) { if (media_stats_vec[i]->kind.ValueToString() == kind) { diff --git a/pc/test/integration_test_helpers.h b/pc/test/integration_test_helpers.h index 1d9882ed81..1a1172c8e3 100644 --- a/pc/test/integration_test_helpers.h +++ b/pc/test/integration_test_helpers.h @@ -175,7 +175,7 @@ void RemoveSsrcsAndKeepMsids(cricket::SessionDescription* desc); // metrics we're interested in are already available in "inbound-rtp". int FindFirstMediaStatsIndexByKind( const std::string& kind, - const std::vector& + const std::vector& media_stats_vec); class TaskQueueMetronome : public webrtc::Metronome { diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc index bd844fd1b1..db12bf6d35 100644 --- a/stats/rtcstats_objects.cc +++ b/stats/rtcstats_objects.cc @@ -315,27 +315,30 @@ const char* RTCRemoteIceCandidateStats::type() const { } // clang-format off -WEBRTC_RTCSTATS_IMPL(RTCMediaStreamStats, RTCStats, "stream", +WEBRTC_RTCSTATS_IMPL(DEPRECATED_RTCMediaStreamStats, RTCStats, "stream", &stream_identifier, &track_ids) // clang-format on -RTCMediaStreamStats::RTCMediaStreamStats(const std::string& id, - int64_t timestamp_us) - : RTCMediaStreamStats(std::string(id), timestamp_us) {} +DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats( + const std::string& id, + int64_t timestamp_us) + : DEPRECATED_RTCMediaStreamStats(std::string(id), timestamp_us) {} -RTCMediaStreamStats::RTCMediaStreamStats(std::string&& id, int64_t timestamp_us) +DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats( + std::string&& id, + int64_t timestamp_us) : RTCStats(std::move(id), timestamp_us), stream_identifier("streamIdentifier"), track_ids("trackIds") {} -RTCMediaStreamStats::RTCMediaStreamStats(const RTCMediaStreamStats& other) = - default; +DEPRECATED_RTCMediaStreamStats::DEPRECATED_RTCMediaStreamStats( + const DEPRECATED_RTCMediaStreamStats& other) = default; -RTCMediaStreamStats::~RTCMediaStreamStats() {} +DEPRECATED_RTCMediaStreamStats::~DEPRECATED_RTCMediaStreamStats() {} // clang-format off -WEBRTC_RTCSTATS_IMPL(RTCMediaStreamTrackStats, RTCStats, "track", +WEBRTC_RTCSTATS_IMPL(DEPRECATED_RTCMediaStreamTrackStats, RTCStats, "track", &track_identifier, &media_source_id, &remote_source, @@ -375,14 +378,17 @@ WEBRTC_RTCSTATS_IMPL(RTCMediaStreamTrackStats, RTCStats, "track", &total_pauses_duration) // clang-format on -RTCMediaStreamTrackStats::RTCMediaStreamTrackStats(const std::string& id, - int64_t timestamp_us, - const char* kind) - : RTCMediaStreamTrackStats(std::string(id), timestamp_us, kind) {} +DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats( + const std::string& id, + int64_t timestamp_us, + const char* kind) + : DEPRECATED_RTCMediaStreamTrackStats(std::string(id), timestamp_us, kind) { +} -RTCMediaStreamTrackStats::RTCMediaStreamTrackStats(std::string&& id, - int64_t timestamp_us, - const char* kind) +DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats( + std::string&& id, + int64_t timestamp_us, + const char* kind) : RTCStats(std::move(id), timestamp_us), track_identifier("trackIdentifier"), media_source_id("mediaSourceId"), @@ -432,10 +438,10 @@ RTCMediaStreamTrackStats::RTCMediaStreamTrackStats(std::string&& id, kind == RTCMediaStreamTrackKind::kVideo); } -RTCMediaStreamTrackStats::RTCMediaStreamTrackStats( - const RTCMediaStreamTrackStats& other) = default; +DEPRECATED_RTCMediaStreamTrackStats::DEPRECATED_RTCMediaStreamTrackStats( + const DEPRECATED_RTCMediaStreamTrackStats& other) = default; -RTCMediaStreamTrackStats::~RTCMediaStreamTrackStats() {} +DEPRECATED_RTCMediaStreamTrackStats::~DEPRECATED_RTCMediaStreamTrackStats() {} // clang-format off WEBRTC_RTCSTATS_IMPL(RTCPeerConnectionStats, RTCStats, "peer-connection", diff --git a/test/pc/e2e/cross_media_metrics_reporter.cc b/test/pc/e2e/cross_media_metrics_reporter.cc index f14901236c..99c1a0bfc1 100644 --- a/test/pc/e2e/cross_media_metrics_reporter.cc +++ b/test/pc/e2e/cross_media_metrics_reporter.cc @@ -47,7 +47,7 @@ void CrossMediaMetricsReporter::OnStatsReports( sync_group_stats; for (const auto& stat : inbound_stats) { auto media_source_stat = - report->GetAs(*stat->track_id); + report->GetAs(*stat->track_id); if (stat->estimated_playout_timestamp.ValueOrDefault(0.) > 0 && media_source_stat->track_identifier.is_defined()) { sync_group_stats[reporter_helper_->GetSyncGroupLabelFromTrackId( @@ -78,9 +78,11 @@ void CrossMediaMetricsReporter::OnStatsReports( // it only once. if (stats_info_.find(sync_group) == stats_info_.end()) { auto audio_source_stat = - report->GetAs(*audio_stat->track_id); + report->GetAs( + *audio_stat->track_id); auto video_source_stat = - report->GetAs(*video_stat->track_id); + report->GetAs( + *video_stat->track_id); // *_source_stat->track_identifier is always defined here because we // checked it while grouping stats. stats_info_[sync_group].audio_stream_label =