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:
committed by
WebRTC LUCI CQ
parent
58fbd1bafe
commit
f785989170
30
pc/BUILD.gn
30
pc/BUILD.gn
@ -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",
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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_
|
||||
@ -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_
|
||||
@ -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));
|
||||
@ -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_);
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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_);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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,
|
||||
|
||||
Reference in New Issue
Block a user