[PCLF] Add possibility to use new perf metrics api in DefaultAudioQualityAnalyzer
Bug: b/246095034 Change-Id: I045fd739ac31c0f13ee46adc831063d9773c39c7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276180 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38144}
This commit is contained in:
parent
c9f66907fc
commit
2d1907bfd2
@ -644,6 +644,8 @@ if (!build_with_chromium) {
|
||||
"../../../api:stats_observer_interface",
|
||||
"../../../api:track_id_stream_info_map",
|
||||
"../../../api/numerics",
|
||||
"../../../api/test/metrics:metric",
|
||||
"../../../api/test/metrics:metrics_logger_and_exporter",
|
||||
"../../../api/units:time_delta",
|
||||
"../../../api/units:timestamp",
|
||||
"../../../rtc_base:criticalsection",
|
||||
|
||||
@ -12,11 +12,15 @@
|
||||
|
||||
#include "api/stats/rtc_stats.h"
|
||||
#include "api/stats/rtcstats_objects.h"
|
||||
#include "api/test/metrics/metric.h"
|
||||
#include "rtc_base/logging.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace webrtc_pc_e2e {
|
||||
|
||||
using ::webrtc::test::ImprovementDirection;
|
||||
using ::webrtc::test::Unit;
|
||||
|
||||
void DefaultAudioQualityAnalyzer::Start(std::string test_case_name,
|
||||
TrackIdStreamInfoMap* analyzer_helper) {
|
||||
test_case_name_ = std::move(test_case_name);
|
||||
@ -115,21 +119,44 @@ void DefaultAudioQualityAnalyzer::Stop() {
|
||||
using ::webrtc::test::ImproveDirection;
|
||||
MutexLock lock(&lock_);
|
||||
for (auto& item : streams_stats_) {
|
||||
ReportResult("expand_rate", item.first, item.second.expand_rate, "unitless",
|
||||
ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("accelerate_rate", item.first, item.second.accelerate_rate,
|
||||
"unitless", ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("preemptive_rate", item.first, item.second.preemptive_rate,
|
||||
"unitless", ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("speech_expand_rate", item.first,
|
||||
item.second.speech_expand_rate, "unitless",
|
||||
ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("average_jitter_buffer_delay_ms", item.first,
|
||||
item.second.average_jitter_buffer_delay_ms, "ms",
|
||||
ImproveDirection::kNone);
|
||||
ReportResult("preferred_buffer_size_ms", item.first,
|
||||
item.second.preferred_buffer_size_ms, "ms",
|
||||
ImproveDirection::kNone);
|
||||
if (metrics_logger_ == nullptr) {
|
||||
ReportResult("expand_rate", item.first, item.second.expand_rate,
|
||||
"unitless", ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("accelerate_rate", item.first, item.second.accelerate_rate,
|
||||
"unitless", ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("preemptive_rate", item.first, item.second.preemptive_rate,
|
||||
"unitless", ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("speech_expand_rate", item.first,
|
||||
item.second.speech_expand_rate, "unitless",
|
||||
ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("average_jitter_buffer_delay_ms", item.first,
|
||||
item.second.average_jitter_buffer_delay_ms, "ms",
|
||||
ImproveDirection::kNone);
|
||||
ReportResult("preferred_buffer_size_ms", item.first,
|
||||
item.second.preferred_buffer_size_ms, "ms",
|
||||
ImproveDirection::kNone);
|
||||
} else {
|
||||
metrics_logger_->LogMetric("expand_rate", item.first,
|
||||
item.second.expand_rate, Unit::kUnitless,
|
||||
ImprovementDirection::kSmallerIsBetter);
|
||||
metrics_logger_->LogMetric("accelerate_rate", item.first,
|
||||
item.second.accelerate_rate, Unit::kUnitless,
|
||||
ImprovementDirection::kSmallerIsBetter);
|
||||
metrics_logger_->LogMetric("preemptive_rate", item.first,
|
||||
item.second.preemptive_rate, Unit::kUnitless,
|
||||
ImprovementDirection::kSmallerIsBetter);
|
||||
metrics_logger_->LogMetric(
|
||||
"speech_expand_rate", item.first, item.second.speech_expand_rate,
|
||||
Unit::kUnitless, ImprovementDirection::kSmallerIsBetter);
|
||||
metrics_logger_->LogMetric("average_jitter_buffer_delay_ms", item.first,
|
||||
item.second.average_jitter_buffer_delay_ms,
|
||||
Unit::kMilliseconds,
|
||||
ImprovementDirection::kNeitherIsBetter);
|
||||
metrics_logger_->LogMetric("preferred_buffer_size_ms", item.first,
|
||||
item.second.preferred_buffer_size_ms,
|
||||
Unit::kMilliseconds,
|
||||
ImprovementDirection::kNeitherIsBetter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "api/numerics/samples_stats_counter.h"
|
||||
#include "api/test/audio_quality_analyzer_interface.h"
|
||||
#include "api/test/metrics/metrics_logger_and_exporter.h"
|
||||
#include "api/test/track_id_stream_info_map.h"
|
||||
#include "api/units/time_delta.h"
|
||||
#include "rtc_base/synchronization/mutex.h"
|
||||
@ -36,6 +37,12 @@ struct AudioStreamStats {
|
||||
|
||||
class DefaultAudioQualityAnalyzer : public AudioQualityAnalyzerInterface {
|
||||
public:
|
||||
DefaultAudioQualityAnalyzer()
|
||||
: DefaultAudioQualityAnalyzer(/*metrics_logger=*/nullptr) {}
|
||||
explicit DefaultAudioQualityAnalyzer(
|
||||
test::MetricsLoggerAndExporter* const metrics_logger)
|
||||
: metrics_logger_(metrics_logger) {}
|
||||
|
||||
void Start(std::string test_case_name,
|
||||
TrackIdStreamInfoMap* analyzer_helper) override;
|
||||
void OnStatsReports(
|
||||
@ -65,6 +72,8 @@ class DefaultAudioQualityAnalyzer : public AudioQualityAnalyzerInterface {
|
||||
const std::string& unit,
|
||||
webrtc::test::ImproveDirection improve_direction) const;
|
||||
|
||||
test::MetricsLoggerAndExporter* const metrics_logger_;
|
||||
|
||||
std::string test_case_name_;
|
||||
TrackIdStreamInfoMap* analyzer_helper_;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user