Rename StatsCollector to LegacyStatsCollector.

We should have done this a long time ago.

Let's do the same for stats_types.h in a separate CL because that file
is part of the api/ folder and needs some special care (typedefs and
temporarily include helper to avoid breaking downstream projects).

Bug: webrtc:14180
Change-Id: Id9c71ebd53dd97dd238bdf7527c36d7cf0e91f85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267642
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37426}
This commit is contained in:
Henrik Boström
2022-07-04 14:36:37 +02:00
committed by WebRTC LUCI CQ
parent 58fbd1bafe
commit f785989170
17 changed files with 166 additions and 163 deletions

View File

@ -733,6 +733,8 @@ rtc_source_set("peerconnection") {
":jitter_buffer_delay",
":jsep_ice_candidate",
":jsep_session_description",
":legacy_stats_collector",
":legacy_stats_collector_interface",
":local_audio_source",
":media_protocol_names",
":media_stream",
@ -757,8 +759,6 @@ rtc_source_set("peerconnection") {
":sdp_utils",
":session_description",
":simulcast_description",
":stats_collector",
":stats_collector_interface",
":stream_collection",
":track_media_info_map",
":transceiver_list",
@ -1084,6 +1084,7 @@ rtc_source_set("sdp_offer_answer") {
":data_channel_controller",
":dtls_transport",
":jsep_transport_controller",
":legacy_stats_collector",
":media_session",
":media_stream",
":media_stream_observer",
@ -1100,7 +1101,6 @@ rtc_source_set("sdp_offer_answer") {
":sdp_state_provider",
":session_description",
":simulcast_description",
":stats_collector",
":stream_collection",
":transceiver_list",
":usage_pattern",
@ -1174,6 +1174,7 @@ rtc_source_set("peer_connection") {
":dtls_transport",
":ice_server_parsing",
":jsep_transport_controller",
":legacy_stats_collector",
":peer_connection_internal",
":peer_connection_message_handler",
":rtc_stats_collector",
@ -1189,7 +1190,6 @@ rtc_source_set("peer_connection") {
":sdp_offer_answer",
":session_description",
":simulcast_description",
":stats_collector",
":transceiver_list",
":transport_stats",
":usage_pattern",
@ -1280,22 +1280,22 @@ rtc_source_set("sdp_utils") {
"../rtc_base/system:rtc_export",
]
}
rtc_source_set("stats_collector") {
rtc_source_set("legacy_stats_collector") {
visibility = [ ":*" ]
sources = [
"stats_collector.cc",
"stats_collector.h",
"legacy_stats_collector.cc",
"legacy_stats_collector.h",
]
deps = [
":channel",
":channel_interface",
":data_channel_utils",
":legacy_stats_collector_interface",
":peer_connection_internal",
":rtp_receiver",
":rtp_receiver_proxy",
":rtp_sender_proxy",
":rtp_transceiver",
":stats_collector_interface",
":transport_stats",
"../api:candidate",
"../api:field_trials_view",
@ -1521,7 +1521,7 @@ rtc_library("peer_connection_message_handler") {
"peer_connection_message_handler.h",
]
deps = [
":stats_collector_interface",
":legacy_stats_collector_interface",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_error",
@ -1605,12 +1605,12 @@ rtc_library("rtp_transmission_manager") {
":audio_rtp_receiver",
":channel",
":channel_interface",
":legacy_stats_collector_interface",
":rtp_receiver",
":rtp_receiver_proxy",
":rtp_sender",
":rtp_sender_proxy",
":rtp_transceiver",
":stats_collector_interface",
":transceiver_list",
":usage_pattern",
":video_rtp_receiver",
@ -1884,7 +1884,7 @@ rtc_library("rtp_sender") {
]
deps = [
":dtmf_sender",
":stats_collector_interface",
":legacy_stats_collector_interface",
"../api:audio_options_api",
"../api:dtls_transport_interface",
"../api:frame_transformer_interface",
@ -2007,9 +2007,9 @@ rtc_library("video_track_source") {
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_source_set("stats_collector_interface") {
rtc_source_set("legacy_stats_collector_interface") {
visibility = [ ":*" ]
sources = [ "stats_collector_interface.h" ]
sources = [ "legacy_stats_collector_interface.h" ]
deps = [
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
@ -2255,6 +2255,7 @@ if (rtc_include_tests && !build_with_chromium) {
"ice_server_parsing_unittest.cc",
"jitter_buffer_delay_unittest.cc",
"jsep_session_description_unittest.cc",
"legacy_stats_collector_unittest.cc",
"local_audio_source_unittest.cc",
"media_stream_unittest.cc",
"peer_connection_adaptation_integrationtest.cc",
@ -2286,7 +2287,6 @@ if (rtc_include_tests && !build_with_chromium) {
"sctp_utils_unittest.cc",
"sdp_offer_answer_unittest.cc",
"sdp_serializer_unittest.cc",
"stats_collector_unittest.cc",
"test/fake_audio_capture_module_unittest.cc",
"test/test_sdp_strings.h",
"track_media_info_map_unittest.cc",
@ -2307,6 +2307,7 @@ if (rtc_include_tests && !build_with_chromium) {
":ice_server_parsing",
":integration_test_helpers",
":jitter_buffer_delay",
":legacy_stats_collector",
":local_audio_source",
":media_protocol_names",
":media_session",
@ -2331,7 +2332,6 @@ if (rtc_include_tests && !build_with_chromium) {
":sdp_utils",
":session_description",
":simulcast_description",
":stats_collector",
":stream_collection",
":track_media_info_map",
":transport_stats",

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "pc/stats_collector.h"
#include "pc/legacy_stats_collector.h"
#include <stddef.h>
#include <stdint.h>
@ -467,7 +467,7 @@ template <typename T>
void ExtractStatsFromList(
const std::vector<T>& data,
const StatsReport::Id& transport_id,
StatsCollector* collector,
LegacyStatsCollector* collector,
StatsReport::Direction direction,
const std::map<uint32_t, std::string>& track_id_by_ssrc) {
for (const auto& d : data) {
@ -534,7 +534,7 @@ const char* AdapterTypeToStatsType(rtc::AdapterType type) {
}
}
StatsCollector::StatsCollector(PeerConnectionInternal* pc)
LegacyStatsCollector::LegacyStatsCollector(PeerConnectionInternal* pc)
: pc_(pc),
stats_gathering_started_(0),
use_standard_bytes_stats_(
@ -542,18 +542,18 @@ StatsCollector::StatsCollector(PeerConnectionInternal* pc)
RTC_DCHECK(pc_);
}
StatsCollector::~StatsCollector() {
LegacyStatsCollector::~LegacyStatsCollector() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
}
// Wallclock time in ms.
double StatsCollector::GetTimeNow() {
double LegacyStatsCollector::GetTimeNow() {
return static_cast<double>(rtc::TimeUTCMillis());
}
// Adds a MediaStream with tracks that can be used as a `selector` in a call
// to GetStats.
void StatsCollector::AddStream(MediaStreamInterface* stream) {
void LegacyStatsCollector::AddStream(MediaStreamInterface* stream) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
RTC_DCHECK(stream != NULL);
@ -563,7 +563,7 @@ void StatsCollector::AddStream(MediaStreamInterface* stream) {
&track_ids_);
}
void StatsCollector::AddTrack(MediaStreamTrackInterface* track) {
void LegacyStatsCollector::AddTrack(MediaStreamTrackInterface* track) {
if (track->kind() == MediaStreamTrackInterface::kAudioKind) {
CreateTrackReport(static_cast<AudioTrackInterface*>(track), &reports_,
&track_ids_);
@ -575,8 +575,8 @@ void StatsCollector::AddTrack(MediaStreamTrackInterface* track) {
}
}
void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track,
uint32_t ssrc) {
void LegacyStatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track,
uint32_t ssrc) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
RTC_DCHECK(audio_track != NULL);
#if RTC_DCHECK_IS_ON
@ -597,8 +597,9 @@ void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track,
}
}
void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track,
uint32_t ssrc) {
void LegacyStatsCollector::RemoveLocalAudioTrack(
AudioTrackInterface* audio_track,
uint32_t ssrc) {
RTC_DCHECK(audio_track != NULL);
local_audio_tracks_.erase(
std::remove_if(
@ -609,8 +610,8 @@ void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track,
local_audio_tracks_.end());
}
void StatsCollector::GetStats(MediaStreamTrackInterface* track,
StatsReports* reports) {
void LegacyStatsCollector::GetStats(MediaStreamTrackInterface* track,
StatsReports* reports) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
RTC_DCHECK(reports != NULL);
RTC_DCHECK(reports->empty());
@ -649,7 +650,7 @@ void StatsCollector::GetStats(MediaStreamTrackInterface* track,
}
}
void StatsCollector::UpdateStats(
void LegacyStatsCollector::UpdateStats(
PeerConnectionInterface::StatsOutputLevel level) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
// Calls to UpdateStats() that occur less than kMinGatherStatsPeriodMs apart
@ -683,11 +684,12 @@ void StatsCollector::UpdateStats(
UpdateTrackReports();
}
StatsReport* StatsCollector::PrepareReport(bool local,
uint32_t ssrc,
const std::string& track_id,
const StatsReport::Id& transport_id,
StatsReport::Direction direction) {
StatsReport* LegacyStatsCollector::PrepareReport(
bool local,
uint32_t ssrc,
const std::string& track_id,
const StatsReport::Id& transport_id,
StatsReport::Direction direction) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
StatsReport::Id id(StatsReport::NewIdWithDirection(
local ? StatsReport::kStatsReportTypeSsrc
@ -710,7 +712,7 @@ StatsReport* StatsCollector::PrepareReport(bool local,
return report;
}
StatsReport* StatsCollector::PrepareADMReport() {
StatsReport* LegacyStatsCollector::PrepareADMReport() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
StatsReport::Id id(StatsReport::NewTypedId(
StatsReport::kStatsReportTypeSession, pc_->session_id()));
@ -718,12 +720,12 @@ StatsReport* StatsCollector::PrepareADMReport() {
return report;
}
bool StatsCollector::IsValidTrack(const std::string& track_id) {
bool LegacyStatsCollector::IsValidTrack(const std::string& track_id) {
return reports_.Find(StatsReport::NewTypedId(
StatsReport::kStatsReportTypeTrack, track_id)) != nullptr;
}
StatsReport* StatsCollector::AddCertificateReports(
StatsReport* LegacyStatsCollector::AddCertificateReports(
std::unique_ptr<rtc::SSLCertificateStats> cert_stats) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
@ -751,7 +753,7 @@ StatsReport* StatsCollector::AddCertificateReports(
return first_report;
}
StatsReport* StatsCollector::AddConnectionInfoReport(
StatsReport* LegacyStatsCollector::AddConnectionInfoReport(
const std::string& content_name,
int component,
int connection_id,
@ -812,7 +814,7 @@ StatsReport* StatsCollector::AddConnectionInfoReport(
return report;
}
StatsReport* StatsCollector::AddCandidateReport(
StatsReport* LegacyStatsCollector::AddCandidateReport(
const cricket::CandidateStats& candidate_stats,
bool local) {
const auto& candidate = candidate_stats.candidate();
@ -853,8 +855,8 @@ StatsReport* StatsCollector::AddCandidateReport(
return report;
}
std::map<std::string, std::string> StatsCollector::ExtractSessionInfo() {
TRACE_EVENT0("webrtc", "StatsCollector::ExtractSessionInfo");
std::map<std::string, std::string> LegacyStatsCollector::ExtractSessionInfo() {
TRACE_EVENT0("webrtc", "LegacyStatsCollector::ExtractSessionInfo");
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
SessionStats stats;
@ -871,12 +873,12 @@ std::map<std::string, std::string> StatsCollector::ExtractSessionInfo() {
return std::move(stats.transport_names_by_mid);
}
StatsCollector::SessionStats StatsCollector::ExtractSessionInfo_n(
LegacyStatsCollector::SessionStats LegacyStatsCollector::ExtractSessionInfo_n(
const std::vector<rtc::scoped_refptr<
RtpTransceiverProxyWithInternal<RtpTransceiver>>>& transceivers,
absl::optional<std::string> sctp_transport_name,
absl::optional<std::string> sctp_mid) {
TRACE_EVENT0("webrtc", "StatsCollector::ExtractSessionInfo_n");
TRACE_EVENT0("webrtc", "LegacyStatsCollector::ExtractSessionInfo_n");
RTC_DCHECK_RUN_ON(pc_->network_thread());
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls;
SessionStats stats;
@ -927,7 +929,7 @@ StatsCollector::SessionStats StatsCollector::ExtractSessionInfo_n(
return stats;
}
void StatsCollector::ExtractSessionInfo_s(SessionStats& session_stats) {
void LegacyStatsCollector::ExtractSessionInfo_s(SessionStats& session_stats) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls;
@ -1019,7 +1021,7 @@ void StatsCollector::ExtractSessionInfo_s(SessionStats& session_stats) {
}
}
void StatsCollector::ExtractBweInfo() {
void LegacyStatsCollector::ExtractBweInfo() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
if (pc_->signaling_state() == PeerConnectionInterface::kClosed)
@ -1067,7 +1069,7 @@ class MediaChannelStatsGatherer {
virtual bool GetStatsOnWorkerThread() = 0;
virtual void ExtractStats(StatsCollector* collector) const = 0;
virtual void ExtractStats(LegacyStatsCollector* collector) const = 0;
virtual bool HasRemoteAudio() const = 0;
@ -1079,7 +1081,7 @@ class MediaChannelStatsGatherer {
protected:
template <typename ReceiverT, typename SenderT>
void ExtractSenderReceiverStats(
StatsCollector* collector,
LegacyStatsCollector* collector,
const std::vector<ReceiverT>& receiver_data,
const std::vector<SenderT>& sender_data) const {
RTC_DCHECK(collector);
@ -1105,7 +1107,7 @@ class VoiceMediaChannelStatsGatherer final : public MediaChannelStatsGatherer {
/*get_and_clear_legacy_stats=*/true);
}
void ExtractStats(StatsCollector* collector) const override {
void ExtractStats(LegacyStatsCollector* collector) const override {
ExtractSenderReceiverStats(collector, voice_media_info.receivers,
voice_media_info.senders);
if (voice_media_info.device_underrun_count == -2 ||
@ -1137,7 +1139,7 @@ class VideoMediaChannelStatsGatherer final : public MediaChannelStatsGatherer {
return video_media_channel_->GetStats(&video_media_info);
}
void ExtractStats(StatsCollector* collector) const override {
void ExtractStats(LegacyStatsCollector* collector) const override {
ExtractSenderReceiverStats(collector, video_media_info.receivers,
video_media_info.aggregated_senders);
}
@ -1164,7 +1166,7 @@ std::unique_ptr<MediaChannelStatsGatherer> CreateMediaChannelStatsGatherer(
} // namespace
void StatsCollector::ExtractMediaInfo(
void LegacyStatsCollector::ExtractMediaInfo(
const std::map<std::string, std::string>& transport_names_by_mid) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
@ -1239,7 +1241,7 @@ void StatsCollector::ExtractMediaInfo(
UpdateStatsFromExistingLocalAudioTracks(has_remote_audio);
}
void StatsCollector::ExtractSenderInfo() {
void LegacyStatsCollector::ExtractSenderInfo() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
for (const auto& sender : pc_->GetSenders()) {
@ -1272,7 +1274,7 @@ void StatsCollector::ExtractSenderInfo() {
}
}
void StatsCollector::ExtractDataInfo() {
void LegacyStatsCollector::ExtractDataInfo() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls;
@ -1294,16 +1296,16 @@ void StatsCollector::ExtractDataInfo() {
}
}
StatsReport* StatsCollector::GetReport(const StatsReport::StatsType& type,
const std::string& id,
StatsReport::Direction direction) {
StatsReport* LegacyStatsCollector::GetReport(const StatsReport::StatsType& type,
const std::string& id,
StatsReport::Direction direction) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
RTC_DCHECK(type == StatsReport::kStatsReportTypeSsrc ||
type == StatsReport::kStatsReportTypeRemoteSsrc);
return reports_.Find(StatsReport::NewIdWithDirection(type, id, direction));
}
void StatsCollector::UpdateStatsFromExistingLocalAudioTracks(
void LegacyStatsCollector::UpdateStatsFromExistingLocalAudioTracks(
bool has_remote_tracks) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
// Loop through the existing local audio tracks.
@ -1330,9 +1332,10 @@ void StatsCollector::UpdateStatsFromExistingLocalAudioTracks(
}
}
void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track,
StatsReport* report,
bool has_remote_tracks) {
void LegacyStatsCollector::UpdateReportFromAudioTrack(
AudioTrackInterface* track,
StatsReport* report,
bool has_remote_tracks) {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
RTC_DCHECK(track != NULL);
@ -1353,7 +1356,7 @@ void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track,
}
}
void StatsCollector::UpdateTrackReports() {
void LegacyStatsCollector::UpdateTrackReports() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls;
@ -1364,7 +1367,7 @@ void StatsCollector::UpdateTrackReports() {
}
}
void StatsCollector::InvalidateCache() {
void LegacyStatsCollector::InvalidateCache() {
RTC_DCHECK_RUN_ON(pc_->signaling_thread());
cache_timestamp_ms_ = 0;
}

View File

@ -11,8 +11,8 @@
// This file contains a class used for gathering statistics from an ongoing
// libjingle PeerConnection.
#ifndef PC_STATS_COLLECTOR_H_
#define PC_STATS_COLLECTOR_H_
#ifndef PC_LEGACY_STATS_COLLECTOR_H_
#define PC_LEGACY_STATS_COLLECTOR_H_
#include <stdint.h>
@ -33,9 +33,9 @@
#include "api/stats_types.h"
#include "p2p/base/connection_info.h"
#include "p2p/base/port.h"
#include "pc/legacy_stats_collector_interface.h"
#include "pc/peer_connection_internal.h"
#include "pc/rtp_transceiver.h"
#include "pc/stats_collector_interface.h"
#include "pc/transport_stats.h"
#include "rtc_base/network_constants.h"
#include "rtc_base/ssl_certificate.h"
@ -55,12 +55,12 @@ const char* AdapterTypeToStatsType(rtc::AdapterType type);
// A mapping between track ids and their StatsReport.
typedef std::map<std::string, StatsReport*> TrackIdMap;
class StatsCollector : public StatsCollectorInterface {
class LegacyStatsCollector : public LegacyStatsCollectorInterface {
public:
// The caller is responsible for ensuring that the pc outlives the
// StatsCollector instance.
explicit StatsCollector(PeerConnectionInternal* pc);
virtual ~StatsCollector();
// LegacyStatsCollector instance.
explicit LegacyStatsCollector(PeerConnectionInternal* pc);
virtual ~LegacyStatsCollector();
// Adds a MediaStream with tracks that can be used as a `selector` in a call
// to GetStats.
@ -112,7 +112,7 @@ class StatsCollector : public StatsCollectorInterface {
bool UseStandardBytesStats() const { return use_standard_bytes_stats_; }
private:
friend class StatsCollectorTest;
friend class LegacyStatsCollectorTest;
// Struct that's populated on the network thread and carries the values to
// the signaling thread where the stats are added to the stats reports.
@ -206,11 +206,11 @@ class StatsCollector : public StatsCollectorInterface {
// TODO(tommi): We appear to be holding on to raw pointers to reference
// counted objects? We should be using scoped_refptr here.
typedef std::vector<std::pair<AudioTrackInterface*, uint32_t> >
typedef std::vector<std::pair<AudioTrackInterface*, uint32_t>>
LocalAudioTrackVector;
LocalAudioTrackVector local_audio_tracks_;
};
} // namespace webrtc
#endif // PC_STATS_COLLECTOR_H_
#endif // PC_LEGACY_STATS_COLLECTOR_H_

View File

@ -12,8 +12,8 @@
// is used by compilation units that do not wish to depend on the StatsCollector
// implementation.
#ifndef PC_STATS_COLLECTOR_INTERFACE_H_
#define PC_STATS_COLLECTOR_INTERFACE_H_
#ifndef PC_LEGACY_STATS_COLLECTOR_INTERFACE_H_
#define PC_LEGACY_STATS_COLLECTOR_INTERFACE_H_
#include <stdint.h>
@ -22,9 +22,9 @@
namespace webrtc {
class StatsCollectorInterface {
class LegacyStatsCollectorInterface {
public:
virtual ~StatsCollectorInterface() {}
virtual ~LegacyStatsCollectorInterface() {}
// Adds a local audio track that is used for getting some voice statistics.
virtual void AddLocalAudioTrack(AudioTrackInterface* audio_track,
@ -40,4 +40,4 @@ class StatsCollectorInterface {
} // namespace webrtc
#endif // PC_STATS_COLLECTOR_INTERFACE_H_
#endif // PC_LEGACY_STATS_COLLECTOR_INTERFACE_H_

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "pc/stats_collector.h"
#include "pc/legacy_stats_collector.h"
#include <stdio.h>
@ -583,10 +583,10 @@ void InitVoiceReceiverInfo(cricket::VoiceReceiverInfo* voice_receiver_info) {
voice_receiver_info->decoding_codec_plc = 127;
}
class StatsCollectorForTest : public StatsCollector {
class LegacyStatsCollectorForTest : public LegacyStatsCollector {
public:
explicit StatsCollectorForTest(PeerConnectionInternal* pc)
: StatsCollector(pc), time_now_(19477) {}
explicit LegacyStatsCollectorForTest(PeerConnectionInternal* pc)
: LegacyStatsCollector(pc), time_now_(19477) {}
double GetTimeNow() override { return time_now_; }
@ -594,19 +594,19 @@ class StatsCollectorForTest : public StatsCollector {
double time_now_;
};
class StatsCollectorTest : public ::testing::Test {
class LegacyStatsCollectorTest : public ::testing::Test {
protected:
rtc::scoped_refptr<FakePeerConnectionForStats> CreatePeerConnection() {
return rtc::make_ref_counted<FakePeerConnectionForStats>();
}
std::unique_ptr<StatsCollectorForTest> CreateStatsCollector(
std::unique_ptr<LegacyStatsCollectorForTest> CreateStatsCollector(
PeerConnectionInternal* pc) {
return std::make_unique<StatsCollectorForTest>(pc);
return std::make_unique<LegacyStatsCollectorForTest>(pc);
}
void VerifyAudioTrackStats(FakeAudioTrack* audio_track,
StatsCollectorForTest* stats,
LegacyStatsCollectorForTest* stats,
const VoiceMediaInfo& voice_info,
StatsReports* reports) {
stats->UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
@ -768,14 +768,14 @@ static rtc::scoped_refptr<MockRtpReceiverInternal> CreateMockReceiver(
return receiver;
}
class StatsCollectorTrackTest : public StatsCollectorTest,
class StatsCollectorTrackTest : public LegacyStatsCollectorTest,
public ::testing::WithParamInterface<bool> {
public:
// Adds a outgoing video track with a given SSRC into the stats.
// If GetParam() returns true, the track is also inserted into the local
// stream, which is created if necessary.
void AddOutgoingVideoTrack(FakePeerConnectionForStats* pc,
StatsCollectorForTest* stats) {
LegacyStatsCollectorForTest* stats) {
video_track_ = VideoTrack::Create(
kLocalTrackId, FakeVideoTrackSource::Create(), rtc::Thread::Current());
if (GetParam()) {
@ -791,7 +791,7 @@ class StatsCollectorTrackTest : public StatsCollectorTest,
// Adds a incoming video track with a given SSRC into the stats.
void AddIncomingVideoTrack(FakePeerConnectionForStats* pc,
StatsCollectorForTest* stats) {
LegacyStatsCollectorForTest* stats) {
video_track_ = VideoTrack::Create(
kRemoteTrackId, FakeVideoTrackSource::Create(), rtc::Thread::Current());
if (GetParam()) {
@ -810,7 +810,7 @@ class StatsCollectorTrackTest : public StatsCollectorTest,
// stream, which is created if necessary.
rtc::scoped_refptr<RtpSenderInterface> AddOutgoingAudioTrack(
FakePeerConnectionForStats* pc,
StatsCollectorForTest* stats) {
LegacyStatsCollectorForTest* stats) {
audio_track_ = rtc::make_ref_counted<FakeAudioTrack>(kLocalTrackId);
if (GetParam()) {
if (!stream_)
@ -825,7 +825,7 @@ class StatsCollectorTrackTest : public StatsCollectorTest,
// Adds a incoming audio track with a given SSRC into the stats.
void AddIncomingAudioTrack(FakePeerConnectionForStats* pc,
StatsCollectorForTest* stats) {
LegacyStatsCollectorForTest* stats) {
audio_track_ = rtc::make_ref_counted<FakeAudioTrack>(kRemoteTrackId);
if (GetParam()) {
if (stream_ == nullptr)
@ -846,7 +846,7 @@ class StatsCollectorTrackTest : public StatsCollectorTest,
rtc::scoped_refptr<FakeAudioTrack> audio_track_;
};
TEST_F(StatsCollectorTest, FilterOutNegativeDataChannelId) {
TEST_F(LegacyStatsCollectorTest, FilterOutNegativeDataChannelId) {
auto pc = CreatePeerConnection();
auto stats = CreateStatsCollector(pc.get());
@ -865,7 +865,7 @@ TEST_F(StatsCollectorTest, FilterOutNegativeDataChannelId) {
}
// Verify that ExtractDataInfo populates reports.
TEST_F(StatsCollectorTest, ExtractDataInfo) {
TEST_F(LegacyStatsCollectorTest, ExtractDataInfo) {
const std::string kDataChannelLabel = "hacks";
constexpr int kDataChannelId = 31337;
const std::string kConnectingString = DataChannelInterface::DataStateString(
@ -1033,7 +1033,7 @@ TEST_P(StatsCollectorTrackTest, VideoBandwidthEstimationInfoIsReported) {
// This test verifies that an object of type "googSession" always
// exists in the returned stats.
TEST_F(StatsCollectorTest, SessionObjectExists) {
TEST_F(LegacyStatsCollectorTest, SessionObjectExists) {
auto pc = CreatePeerConnection();
auto stats = CreateStatsCollector(pc.get());
@ -1047,7 +1047,7 @@ TEST_F(StatsCollectorTest, SessionObjectExists) {
// This test verifies that only one object of type "googSession" exists
// in the returned stats.
TEST_F(StatsCollectorTest, OnlyOneSessionObjectExists) {
TEST_F(LegacyStatsCollectorTest, OnlyOneSessionObjectExists) {
auto pc = CreatePeerConnection();
auto stats = CreateStatsCollector(pc.get());
@ -1270,7 +1270,7 @@ TEST_P(StatsCollectorTrackTest, ReportsFromRemoteTrack) {
// This test verifies the Ice Candidate report should contain the correct
// information from local/remote candidates.
TEST_F(StatsCollectorTest, IceCandidateReport) {
TEST_F(LegacyStatsCollectorTest, IceCandidateReport) {
const std::string kTransportName = "transport";
const rtc::AdapterType kNetworkType = rtc::ADAPTER_TYPE_ETHERNET;
constexpr uint32_t kPriority = 1000;
@ -1378,7 +1378,7 @@ TEST_F(StatsCollectorTest, IceCandidateReport) {
// This test verifies that all chained certificates are correctly
// reported
TEST_F(StatsCollectorTest, ChainedCertificateReportsCreated) {
TEST_F(LegacyStatsCollectorTest, ChainedCertificateReportsCreated) {
// Build local certificate chain.
std::vector<std::string> local_ders(5);
local_ders[0] = "These";
@ -1402,7 +1402,7 @@ TEST_F(StatsCollectorTest, ChainedCertificateReportsCreated) {
// This test verifies that all certificates without chains are correctly
// reported.
TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) {
TEST_F(LegacyStatsCollectorTest, ChainlessCertificateReportsCreated) {
// Build local certificate.
std::string local_der = "This is the local der.";
rtc::FakeSSLIdentity local_identity(DerToPem(local_der));
@ -1418,7 +1418,7 @@ TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) {
// This test verifies that the stats are generated correctly when no
// transport is present.
TEST_F(StatsCollectorTest, NoTransport) {
TEST_F(LegacyStatsCollectorTest, NoTransport) {
auto pc = CreatePeerConnection();
auto stats = CreateStatsCollector(pc.get());
@ -1455,7 +1455,7 @@ TEST_F(StatsCollectorTest, NoTransport) {
// This test verifies that a remote certificate with an unsupported digest
// algorithm is correctly ignored.
TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) {
TEST_F(LegacyStatsCollectorTest, UnsupportedDigestIgnored) {
// Build a local certificate.
std::string local_der = "This is the local der.";
rtc::FakeSSLIdentity local_identity(DerToPem(local_der));

View File

@ -543,15 +543,15 @@ PeerConnection::~PeerConnection() {
}
// Need to stop transceivers before destroying the stats collector because
// AudioRtpSender has a reference to the StatsCollector it will update when
// stopping.
// AudioRtpSender has a reference to the LegacyStatsCollector it will update
// when stopping.
if (rtp_manager()) {
for (const auto& transceiver : rtp_manager()->transceivers()->List()) {
transceiver->StopInternal();
}
}
stats_.reset(nullptr);
legacy_stats_.reset(nullptr);
if (stats_collector_) {
stats_collector_->WaitForPendingRequest();
stats_collector_ = nullptr;
@ -635,15 +635,15 @@ RTCError PeerConnection::Initialize(
configuration_ = configuration;
stats_ = std::make_unique<StatsCollector>(this);
legacy_stats_ = std::make_unique<LegacyStatsCollector>(this);
stats_collector_ = RTCStatsCollector::Create(this);
sdp_handler_ = SdpOfferAnswerHandler::Create(this, configuration,
dependencies, context_.get());
rtp_manager_ = std::make_unique<RtpTransmissionManager>(
IsUnifiedPlan(), context_.get(), &usage_pattern_, observer_, stats_.get(),
[this]() {
IsUnifiedPlan(), context_.get(), &usage_pattern_, observer_,
legacy_stats_.get(), [this]() {
RTC_DCHECK_RUN_ON(signaling_thread());
sdp_handler_->UpdateNegotiationNeeded();
});
@ -868,7 +868,7 @@ RTCErrorOr<rtc::scoped_refptr<RtpSenderInterface>> PeerConnection::AddTrack(
auto sender_or_error = rtp_manager()->AddTrack(track, stream_ids);
if (sender_or_error.ok()) {
sdp_handler_->UpdateNegotiationNeeded();
stats_->AddTrack(track.get());
legacy_stats_->AddTrack(track.get());
}
return sender_or_error;
}
@ -1145,8 +1145,9 @@ rtc::scoped_refptr<RtpSenderInterface> PeerConnection::CreateSender(
// TODO(steveanton): Move construction of the RtpSenders to RtpTransceiver.
rtc::scoped_refptr<RtpSenderProxyWithInternal<RtpSenderInternal>> new_sender;
if (kind == MediaStreamTrackInterface::kAudioKind) {
auto audio_sender = AudioRtpSender::Create(
worker_thread(), rtc::CreateRandomUuid(), stats_.get(), rtp_manager());
auto audio_sender =
AudioRtpSender::Create(worker_thread(), rtc::CreateRandomUuid(),
legacy_stats_.get(), rtp_manager());
audio_sender->SetMediaChannel(rtp_manager()->voice_media_channel());
new_sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create(
signaling_thread(), audio_sender);
@ -1208,27 +1209,27 @@ PeerConnection::GetTransceivers() const {
bool PeerConnection::GetStats(StatsObserver* observer,
MediaStreamTrackInterface* track,
StatsOutputLevel level) {
TRACE_EVENT0("webrtc", "PeerConnection::GetStats");
TRACE_EVENT0("webrtc", "PeerConnection::GetStats (legacy)");
RTC_DCHECK_RUN_ON(signaling_thread());
if (!observer) {
RTC_LOG(LS_ERROR) << "GetStats - observer is NULL.";
RTC_LOG(LS_ERROR) << "Legacy GetStats - observer is NULL.";
return false;
}
RTC_LOG_THREAD_BLOCK_COUNT();
stats_->UpdateStats(level);
legacy_stats_->UpdateStats(level);
RTC_DCHECK_BLOCK_COUNT_NO_MORE_THAN(4);
// The StatsCollector is used to tell if a track is valid because it may
// The LegacyStatsCollector is used to tell if a track is valid because it may
// remember tracks that the PeerConnection previously removed.
if (track && !stats_->IsValidTrack(track->id())) {
RTC_LOG(LS_WARNING) << "GetStats is called with an invalid track: "
if (track && !legacy_stats_->IsValidTrack(track->id())) {
RTC_LOG(LS_WARNING) << "Legacy GetStats is called with an invalid track: "
<< track->id();
return false;
}
message_handler_.PostGetStats(observer, stats_.get(), track);
message_handler_.PostGetStats(observer, legacy_stats_.get(), track);
return true;
}
@ -1816,7 +1817,7 @@ void PeerConnection::Close() {
}
// Update stats here so that we have the most recent stats for tracks and
// streams before the channels are closed.
stats_->UpdateStats(kStatsOutputLevelStandard);
legacy_stats_->UpdateStats(kStatsOutputLevelStandard);
ice_connection_state_ = PeerConnectionInterface::kIceConnectionClosed;
Observer()->OnIceConnectionChange(ice_connection_state_);

View File

@ -61,6 +61,7 @@
#include "pc/data_channel_utils.h"
#include "pc/dtls_transport.h"
#include "pc/jsep_transport_controller.h"
#include "pc/legacy_stats_collector.h"
#include "pc/peer_connection_internal.h"
#include "pc/peer_connection_message_handler.h"
#include "pc/rtc_stats_collector.h"
@ -70,7 +71,6 @@
#include "pc/sctp_data_channel.h"
#include "pc/sdp_offer_answer.h"
#include "pc/session_description.h"
#include "pc/stats_collector.h"
#include "pc/transceiver_list.h"
#include "pc/transport_stats.h"
#include "pc/usage_pattern.h"
@ -320,9 +320,9 @@ class PeerConnection : public PeerConnectionInternal,
bool ShouldFireNegotiationNeededEvent(uint32_t event_id) override;
// Functions needed by SdpOfferAnswerHandler
StatsCollector* stats() override {
LegacyStatsCollector* legacy_stats() override {
RTC_DCHECK_RUN_ON(signaling_thread());
return stats_.get();
return legacy_stats_.get();
}
DataChannelController* data_channel_controller() override {
RTC_DCHECK_RUN_ON(signaling_thread());
@ -655,7 +655,7 @@ class PeerConnection : public PeerConnectionInternal,
// pointer).
Call* const call_ptr_;
std::unique_ptr<StatsCollector> stats_
std::unique_ptr<LegacyStatsCollector> legacy_stats_
RTC_GUARDED_BY(signaling_thread()); // A pointer is passed to senders_
rtc::scoped_refptr<RTCStatsCollector> stats_collector_
RTC_GUARDED_BY(signaling_thread());

View File

@ -28,7 +28,7 @@
namespace webrtc {
class DataChannelController;
class StatsCollector;
class LegacyStatsCollector;
// This interface defines the functions that are needed for
// SdpOfferAnswerHandler to access PeerConnection internal state.
@ -75,7 +75,7 @@ class PeerConnectionSdpMethods {
virtual JsepTransportController* transport_controller_n() = 0;
virtual DataChannelController* data_channel_controller() = 0;
virtual cricket::PortAllocator* port_allocator() = 0;
virtual StatsCollector* stats() = 0;
virtual LegacyStatsCollector* legacy_stats() = 0;
// Returns the observer. Will crash on CHECK if the observer is removed.
virtual PeerConnectionObserver* Observer() const = 0;
virtual bool GetSctpSslRole(rtc::SSLRole* role) = 0;

View File

@ -19,7 +19,7 @@
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "api/stats_types.h"
#include "pc/stats_collector_interface.h"
#include "pc/legacy_stats_collector_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/location.h"
@ -53,13 +53,13 @@ struct CreateSessionDescriptionMsg : public rtc::MessageData {
RTCError error;
};
struct GetStatsMsg : public rtc::MessageData {
GetStatsMsg(webrtc::StatsObserver* observer,
StatsCollectorInterface* stats,
webrtc::MediaStreamTrackInterface* track)
struct LegacyGetStatsMsg : public rtc::MessageData {
LegacyGetStatsMsg(webrtc::StatsObserver* observer,
LegacyStatsCollectorInterface* stats,
webrtc::MediaStreamTrackInterface* track)
: observer(observer), stats(stats), track(track) {}
rtc::scoped_refptr<webrtc::StatsObserver> observer;
StatsCollectorInterface* stats;
LegacyStatsCollectorInterface* stats;
rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> track;
};
@ -115,7 +115,7 @@ void PeerConnectionMessageHandler::OnMessage(rtc::Message* msg) {
break;
}
case MSG_GETSTATS: {
GetStatsMsg* param = static_cast<GetStatsMsg*>(msg->pdata);
LegacyGetStatsMsg* param = static_cast<LegacyGetStatsMsg*>(msg->pdata);
StatsReports reports;
param->stats->GetStats(param->track.get(), &reports);
param->observer->OnComplete(reports);
@ -164,10 +164,11 @@ void PeerConnectionMessageHandler::PostCreateSessionDescriptionFailure(
void PeerConnectionMessageHandler::PostGetStats(
StatsObserver* observer,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* legacy_stats,
MediaStreamTrackInterface* track) {
signaling_thread()->Post(RTC_FROM_HERE, this, MSG_GETSTATS,
new GetStatsMsg(observer, stats, track));
signaling_thread()->Post(
RTC_FROM_HERE, this, MSG_GETSTATS,
new LegacyGetStatsMsg(observer, legacy_stats, track));
}
void PeerConnectionMessageHandler::RequestUsagePatternReport(

View File

@ -18,7 +18,7 @@
#include "api/peer_connection_interface.h"
#include "api/rtc_error.h"
#include "api/stats_types.h"
#include "pc/stats_collector_interface.h"
#include "pc/legacy_stats_collector_interface.h"
#include "rtc_base/message_handler.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_message.h"
@ -47,7 +47,7 @@ class PeerConnectionMessageHandler : public rtc::MessageHandler {
CreateSessionDescriptionObserver* observer,
RTCError error);
void PostGetStats(StatsObserver* observer,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* legacy_stats,
MediaStreamTrackInterface* track);
void RequestUsagePatternReport(std::function<void()>, int delay_ms);

View File

@ -21,7 +21,7 @@
#include "api/media_stream_interface.h"
#include "api/priority.h"
#include "media/base/media_engine.h"
#include "pc/stats_collector_interface.h"
#include "pc/legacy_stats_collector_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "rtc_base/location.h"
@ -453,7 +453,7 @@ void LocalAudioSinkAdapter::SetSink(cricket::AudioSource::Sink* sink) {
rtc::scoped_refptr<AudioRtpSender> AudioRtpSender::Create(
rtc::Thread* worker_thread,
const std::string& id,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* stats,
SetStreamsObserver* set_streams_observer) {
return rtc::make_ref_counted<AudioRtpSender>(worker_thread, id, stats,
set_streams_observer);
@ -461,10 +461,10 @@ rtc::scoped_refptr<AudioRtpSender> AudioRtpSender::Create(
AudioRtpSender::AudioRtpSender(rtc::Thread* worker_thread,
const std::string& id,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* legacy_stats,
SetStreamsObserver* set_streams_observer)
: RtpSenderBase(worker_thread, id, set_streams_observer),
stats_(stats),
legacy_stats_(legacy_stats),
dtmf_sender_proxy_(DtmfSenderProxy::Create(
rtc::Thread::Current(),
DtmfSender::Create(rtc::Thread::Current(), this))),
@ -537,14 +537,14 @@ void AudioRtpSender::AttachTrack() {
}
void AudioRtpSender::AddTrackToStats() {
if (can_send_track() && stats_) {
stats_->AddLocalAudioTrack(audio_track().get(), ssrc_);
if (can_send_track() && legacy_stats_) {
legacy_stats_->AddLocalAudioTrack(audio_track().get(), ssrc_);
}
}
void AudioRtpSender::RemoveTrackFromStats() {
if (can_send_track() && stats_) {
stats_->RemoveLocalAudioTrack(audio_track().get(), ssrc_);
if (can_send_track() && legacy_stats_) {
legacy_stats_->RemoveLocalAudioTrack(audio_track().get(), ssrc_);
}
}

View File

@ -37,7 +37,7 @@
#include "media/base/audio_source.h"
#include "media/base/media_channel.h"
#include "pc/dtmf_sender.h"
#include "pc/stats_collector_interface.h"
#include "pc/legacy_stats_collector_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
@ -46,8 +46,6 @@
namespace webrtc {
class StatsCollectorInterface;
bool UnimplementedRtpParameterHasValue(const RtpParameters& parameters);
// Internal interface used by PeerConnection.
@ -309,7 +307,7 @@ class AudioRtpSender : public DtmfProviderInterface, public RtpSenderBase {
static rtc::scoped_refptr<AudioRtpSender> Create(
rtc::Thread* worker_thread,
const std::string& id,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* stats,
SetStreamsObserver* set_streams_observer);
virtual ~AudioRtpSender();
@ -333,7 +331,7 @@ class AudioRtpSender : public DtmfProviderInterface, public RtpSenderBase {
protected:
AudioRtpSender(rtc::Thread* worker_thread,
const std::string& id,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* legacy_stats,
SetStreamsObserver* set_streams_observer);
void SetSend() override;
@ -355,7 +353,7 @@ class AudioRtpSender : public DtmfProviderInterface, public RtpSenderBase {
}
sigslot::signal0<> SignalDestroyed;
StatsCollectorInterface* stats_ = nullptr;
LegacyStatsCollectorInterface* legacy_stats_ = nullptr;
rtc::scoped_refptr<DtmfSenderInterface> dtmf_sender_proxy_;
bool cached_track_enabled_ = false;

View File

@ -18,7 +18,7 @@
#include "api/rtp_transceiver_direction.h"
#include "pc/audio_rtp_receiver.h"
#include "pc/channel_interface.h"
#include "pc/stats_collector_interface.h"
#include "pc/legacy_stats_collector_interface.h"
#include "pc/video_rtp_receiver.h"
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
@ -38,13 +38,13 @@ RtpTransmissionManager::RtpTransmissionManager(
ConnectionContext* context,
UsagePattern* usage_pattern,
PeerConnectionObserver* observer,
StatsCollectorInterface* stats,
LegacyStatsCollectorInterface* legacy_stats,
std::function<void()> on_negotiation_needed)
: is_unified_plan_(is_unified_plan),
context_(context),
usage_pattern_(usage_pattern),
observer_(observer),
stats_(stats),
legacy_stats_(legacy_stats),
on_negotiation_needed_(on_negotiation_needed),
weak_ptr_factory_(this) {}
@ -210,7 +210,7 @@ RtpTransmissionManager::CreateSender(
(track->kind() == MediaStreamTrackInterface::kAudioKind));
sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create(
signaling_thread(),
AudioRtpSender::Create(worker_thread(), id, stats_, this));
AudioRtpSender::Create(worker_thread(), id, legacy_stats_, this));
NoteUsageEvent(UsageEvent::AUDIO_ADDED);
} else {
RTC_DCHECK_EQ(media_type, cricket::MEDIA_TYPE_VIDEO);

View File

@ -27,12 +27,12 @@
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "media/base/media_channel.h"
#include "pc/legacy_stats_collector_interface.h"
#include "pc/rtp_receiver.h"
#include "pc/rtp_receiver_proxy.h"
#include "pc/rtp_sender.h"
#include "pc/rtp_sender_proxy.h"
#include "pc/rtp_transceiver.h"
#include "pc/stats_collector_interface.h"
#include "pc/transceiver_list.h"
#include "pc/usage_pattern.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
@ -79,7 +79,7 @@ class RtpTransmissionManager : public RtpSenderBase::SetStreamsObserver {
ConnectionContext* context,
UsagePattern* usage_pattern,
PeerConnectionObserver* observer,
StatsCollectorInterface* stats_,
LegacyStatsCollectorInterface* legacy_stats,
std::function<void()> on_negotiation_needed);
// No move or copy permitted.
@ -264,7 +264,7 @@ class RtpTransmissionManager : public RtpSenderBase::SetStreamsObserver {
ConnectionContext* context_;
UsagePattern* usage_pattern_;
PeerConnectionObserver* observer_;
StatsCollectorInterface* const stats_;
LegacyStatsCollectorInterface* const legacy_stats_;
std::function<void()> on_negotiation_needed_;
rtc::WeakPtrFactory<RtpTransmissionManager> weak_ptr_factory_
RTC_GUARDED_BY(signaling_thread());

View File

@ -42,6 +42,7 @@
#include "p2p/base/transport_info.h"
#include "pc/channel_interface.h"
#include "pc/dtls_transport.h"
#include "pc/legacy_stats_collector.h"
#include "pc/media_stream.h"
#include "pc/media_stream_proxy.h"
#include "pc/peer_connection_internal.h"
@ -51,7 +52,6 @@
#include "pc/rtp_sender.h"
#include "pc/rtp_sender_proxy.h"
#include "pc/simulcast_description.h"
#include "pc/stats_collector.h"
#include "pc/usage_pattern.h"
#include "pc/webrtc_session_description_factory.h"
#include "rtc_base/helpers.h"
@ -1488,10 +1488,10 @@ RTCError SdpOfferAnswerHandler::ApplyLocalDescription(
RTC_DCHECK_RUN_ON(signaling_thread());
RTC_DCHECK(desc);
// Invalidate the [legacy] stats cache to make sure that it gets updated next
// Invalidate the legacy stats cache to make sure that it gets updated next
// time getStats() gets called, as updating the session description affects
// the stats.
pc_->stats()->InvalidateCache();
pc_->legacy_stats()->InvalidateCache();
// Take a reference to the old local description since it's used below to
// compare against the new local description. When setting the new local
@ -1826,7 +1826,7 @@ void SdpOfferAnswerHandler::ApplyRemoteDescription(
// Invalidate the [legacy] stats cache to make sure that it gets updated next
// time getStats() gets called, as updating the session description affects
// the stats.
pc_->stats()->InvalidateCache();
pc_->legacy_stats()->InvalidateCache();
if (!operation->ReplaceRemoteDescriptionAndCheckEror())
return;
@ -2045,7 +2045,7 @@ void SdpOfferAnswerHandler::ApplyRemoteDescriptionUpdateTransceiverState(
// Once all processing has finished, fire off callbacks.
auto observer = pc_->Observer();
for (const auto& transceiver : now_receiving_transceivers) {
pc_->stats()->AddTrack(transceiver->receiver()->track().get());
pc_->legacy_stats()->AddTrack(transceiver->receiver()->track().get());
observer->OnTrack(transceiver);
observer->OnAddTrack(transceiver->receiver(),
transceiver->receiver()->streams());
@ -2115,7 +2115,7 @@ void SdpOfferAnswerHandler::PlanBUpdateSendersAndReceivers(
auto observer = pc_->Observer();
for (size_t i = 0; i < new_streams->count(); ++i) {
MediaStreamInterface* new_stream = new_streams->at(i);
pc_->stats()->AddStream(new_stream);
pc_->legacy_stats()->AddStream(new_stream);
observer->OnAddStream(rtc::scoped_refptr<MediaStreamInterface>(new_stream));
}
@ -2834,7 +2834,7 @@ bool SdpOfferAnswerHandler::AddStream(MediaStreamInterface* local_stream) {
rtp_manager()->AddVideoTrack(track.get(), local_stream);
}
pc_->stats()->AddStream(local_stream);
pc_->legacy_stats()->AddStream(local_stream);
UpdateNegotiationNeeded();
return true;
}

View File

@ -315,7 +315,7 @@ class FakePeerConnectionBase : public PeerConnectionInternal {
JsepTransportController* transport_controller_n() override { return nullptr; }
DataChannelController* data_channel_controller() override { return nullptr; }
cricket::PortAllocator* port_allocator() override { return nullptr; }
StatsCollector* stats() override { return nullptr; }
LegacyStatsCollector* legacy_stats() override { return nullptr; }
PeerConnectionObserver* Observer() const override { return nullptr; }
bool GetSctpSslRole(rtc::SSLRole* role) override { return false; }
PeerConnectionInterface::IceConnectionState ice_connection_state_internal()

View File

@ -226,7 +226,7 @@ class MockPeerConnectionInternal : public PeerConnectionInternal {
MOCK_METHOD(JsepTransportController*, transport_controller_n, (), (override));
MOCK_METHOD(DataChannelController*, data_channel_controller, (), (override));
MOCK_METHOD(cricket::PortAllocator*, port_allocator, (), (override));
MOCK_METHOD(StatsCollector*, stats, (), (override));
MOCK_METHOD(LegacyStatsCollector*, legacy_stats, (), (override));
MOCK_METHOD(PeerConnectionObserver*, Observer, (), (const, override));
MOCK_METHOD(bool, GetSctpSslRole, (rtc::SSLRole*), (override));
MOCK_METHOD(PeerConnectionInterface::IceConnectionState,