[PCLF] Add possibility to use new perf metrics api in CrossMediaMetricsReporter
Bug: b/246095034 Change-Id: I8d6dd352cb12ee2b729bb534a1646b178fe0b6db Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276181 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38147}
This commit is contained in:
parent
86f2022f0e
commit
d795c8bd16
@ -909,6 +909,8 @@ if (!build_with_chromium) {
|
||||
"../../../api:rtc_stats_api",
|
||||
"../../../api:track_id_stream_info_map",
|
||||
"../../../api/numerics",
|
||||
"../../../api/test/metrics:metric",
|
||||
"../../../api/test/metrics:metrics_logger_and_exporter",
|
||||
"../../../api/units:timestamp",
|
||||
"../../../rtc_base:criticalsection",
|
||||
"../../../rtc_base:rtc_event",
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
|
||||
#include "api/stats/rtc_stats.h"
|
||||
#include "api/stats/rtcstats_objects.h"
|
||||
#include "api/test/metrics/metric.h"
|
||||
#include "api/units/timestamp.h"
|
||||
#include "rtc_base/event.h"
|
||||
#include "system_wrappers/include/field_trial.h"
|
||||
@ -21,6 +22,9 @@
|
||||
namespace webrtc {
|
||||
namespace webrtc_pc_e2e {
|
||||
|
||||
using ::webrtc::test::ImprovementDirection;
|
||||
using ::webrtc::test::Unit;
|
||||
|
||||
void CrossMediaMetricsReporter::Start(
|
||||
absl::string_view test_case_name,
|
||||
const TrackIdStreamInfoMap* reporter_helper) {
|
||||
@ -98,14 +102,27 @@ void CrossMediaMetricsReporter::StopAndReportResults() {
|
||||
MutexLock lock(&mutex_);
|
||||
for (const auto& pair : stats_info_) {
|
||||
const std::string& sync_group = pair.first;
|
||||
ReportResult("audio_ahead_ms",
|
||||
GetTestCaseName(pair.second.audio_stream_label, sync_group),
|
||||
pair.second.audio_ahead_ms, "ms",
|
||||
webrtc::test::ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("video_ahead_ms",
|
||||
GetTestCaseName(pair.second.video_stream_label, sync_group),
|
||||
pair.second.video_ahead_ms, "ms",
|
||||
webrtc::test::ImproveDirection::kSmallerIsBetter);
|
||||
if (metrics_logger_ == nullptr) {
|
||||
ReportResult("audio_ahead_ms",
|
||||
GetTestCaseName(pair.second.audio_stream_label, sync_group),
|
||||
pair.second.audio_ahead_ms, "ms",
|
||||
webrtc::test::ImproveDirection::kSmallerIsBetter);
|
||||
ReportResult("video_ahead_ms",
|
||||
GetTestCaseName(pair.second.video_stream_label, sync_group),
|
||||
pair.second.video_ahead_ms, "ms",
|
||||
webrtc::test::ImproveDirection::kSmallerIsBetter);
|
||||
} else {
|
||||
metrics_logger_->LogMetric(
|
||||
"audio_ahead_ms",
|
||||
GetTestCaseName(pair.second.audio_stream_label, sync_group),
|
||||
pair.second.audio_ahead_ms, Unit::kMilliseconds,
|
||||
webrtc::test::ImprovementDirection::kSmallerIsBetter);
|
||||
metrics_logger_->LogMetric(
|
||||
"video_ahead_ms",
|
||||
GetTestCaseName(pair.second.video_stream_label, sync_group),
|
||||
pair.second.video_ahead_ms, Unit::kMilliseconds,
|
||||
webrtc::test::ImprovementDirection::kSmallerIsBetter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "absl/types/optional.h"
|
||||
#include "api/numerics/samples_stats_counter.h"
|
||||
#include "api/test/metrics/metrics_logger_and_exporter.h"
|
||||
#include "api/test/peerconnection_quality_test_fixture.h"
|
||||
#include "api/test/track_id_stream_info_map.h"
|
||||
#include "api/units/timestamp.h"
|
||||
@ -29,7 +30,11 @@ namespace webrtc_pc_e2e {
|
||||
class CrossMediaMetricsReporter
|
||||
: public PeerConnectionE2EQualityTestFixture::QualityMetricsReporter {
|
||||
public:
|
||||
CrossMediaMetricsReporter() = default;
|
||||
CrossMediaMetricsReporter()
|
||||
: CrossMediaMetricsReporter(/*metrics_logger=*/nullptr) {}
|
||||
explicit CrossMediaMetricsReporter(
|
||||
test::MetricsLoggerAndExporter* metrics_logger)
|
||||
: metrics_logger_(metrics_logger) {}
|
||||
~CrossMediaMetricsReporter() override = default;
|
||||
|
||||
void Start(absl::string_view test_case_name,
|
||||
@ -57,6 +62,8 @@ class CrossMediaMetricsReporter
|
||||
std::string GetTestCaseName(const std::string& stream_label,
|
||||
const std::string& sync_group) const;
|
||||
|
||||
test::MetricsLoggerAndExporter* const metrics_logger_;
|
||||
|
||||
std::string test_case_name_;
|
||||
const TrackIdStreamInfoMap* reporter_helper_;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user