[DVQA] Add capture_frame_rate metric as detailed stats
Bug: b/240540204 Change-Id: I3e4a8f903f5b01c31418cc3e29d4e663d62a86a3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279640 Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38427}
This commit is contained in:
parent
64a33f2453
commit
048f5c7516
@ -1049,6 +1049,12 @@ void DefaultVideoQualityAnalyzer::ReportResults(
|
||||
metric_metadata);
|
||||
|
||||
if (options_.report_detailed_frame_stats) {
|
||||
metrics_logger_->LogSingleValueMetric(
|
||||
"capture_frame_rate", test_case_name,
|
||||
stats.capture_frame_rate.IsEmpty()
|
||||
? 0
|
||||
: stats.capture_frame_rate.GetEventsPerSecond(),
|
||||
Unit::kHertz, ImprovementDirection::kBiggerIsBetter, metric_metadata);
|
||||
metrics_logger_->LogSingleValueMetric(
|
||||
"num_encoded_frames", test_case_name, frame_counters.encoded,
|
||||
Unit::kCount, ImprovementDirection::kBiggerIsBetter, metric_metadata);
|
||||
|
||||
@ -434,6 +434,7 @@ void DefaultVideoQualityAnalyzerFramesComparator::ProcessComparison(
|
||||
stats->ssim.AddSample(
|
||||
StatsSample(ssim, frame_stats.received_time, metadata));
|
||||
}
|
||||
stats->capture_frame_rate.AddEvent(frame_stats.captured_time);
|
||||
|
||||
// Compute dropped phase for dropped frame
|
||||
if (comparison.type == FrameComparisonType::kDroppedFrame) {
|
||||
|
||||
@ -282,6 +282,11 @@ TEST(DefaultVideoQualityAnalyzerMetricNamesTest, MetricNamesForP2PAreCorrect) {
|
||||
.name = "actual_encode_bitrate",
|
||||
.unit = Unit::kKilobitsPerSecond,
|
||||
.improvement_direction = ImprovementDirection::kNeitherIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video",
|
||||
.name = "capture_frame_rate",
|
||||
.unit = Unit::kHertz,
|
||||
.improvement_direction = ImprovementDirection::kBiggerIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video",
|
||||
.name = "num_encoded_frames",
|
||||
@ -446,6 +451,11 @@ TEST(DefaultVideoQualityAnalyzerMetricNamesTest,
|
||||
.name = "actual_encode_bitrate",
|
||||
.unit = Unit::kKilobitsPerSecond,
|
||||
.improvement_direction = ImprovementDirection::kNeitherIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video_alice_bob",
|
||||
.name = "capture_frame_rate",
|
||||
.unit = Unit::kHertz,
|
||||
.improvement_direction = ImprovementDirection::kBiggerIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video_alice_bob",
|
||||
.name = "num_encoded_frames",
|
||||
@ -578,6 +588,11 @@ TEST(DefaultVideoQualityAnalyzerMetricNamesTest,
|
||||
.name = "actual_encode_bitrate",
|
||||
.unit = Unit::kKilobitsPerSecond,
|
||||
.improvement_direction = ImprovementDirection::kNeitherIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video_alice_charlie",
|
||||
.name = "capture_frame_rate",
|
||||
.unit = Unit::kHertz,
|
||||
.improvement_direction = ImprovementDirection::kBiggerIsBetter},
|
||||
MetricValidationInfo{
|
||||
.test_case = "test_case/alice_video_alice_charlie",
|
||||
.name = "num_encoded_frames",
|
||||
@ -641,10 +656,10 @@ TEST(DefaultVideoQualityAnalyzerMetricNamesTest,
|
||||
|
||||
std::vector<std::string> metrics =
|
||||
ToTestCases(metrics_logger.GetCollectedMetrics());
|
||||
EXPECT_THAT(metrics, SizeIs(53));
|
||||
EXPECT_THAT(metrics, Contains("test_case/alice_video_alice_bob").Times(26));
|
||||
EXPECT_THAT(metrics, SizeIs(55));
|
||||
EXPECT_THAT(metrics, Contains("test_case/alice_video_alice_bob").Times(27));
|
||||
EXPECT_THAT(metrics,
|
||||
Contains("test_case/alice_video_alice_charlie").Times(26));
|
||||
Contains("test_case/alice_video_alice_charlie").Times(27));
|
||||
EXPECT_THAT(metrics, Contains("test_case").Times(1));
|
||||
}
|
||||
|
||||
|
||||
@ -125,6 +125,7 @@ struct StreamStats {
|
||||
SamplesStatsCounter total_delay_incl_transport_ms;
|
||||
// Time between frames out from renderer.
|
||||
SamplesStatsCounter time_between_rendered_frames_ms;
|
||||
SamplesRateCounter capture_frame_rate;
|
||||
SamplesRateCounter encode_frame_rate;
|
||||
SamplesStatsCounter encode_time_ms;
|
||||
SamplesStatsCounter decode_time_ms;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user