diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc index 7f61a379cd..81a0448c3b 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc @@ -192,6 +192,7 @@ void DefaultVideoQualityAnalyzer::OnFrameEncoded( stream_frame_counters_[it->second.stream_label].encoded++; } it->second.encoded_time = Now(); + it->second.encoded_image_size = encoded_image.size(); } void DefaultVideoQualityAnalyzer::OnFrameDropped( @@ -515,6 +516,7 @@ void DefaultVideoQualityAnalyzer::ProcessComparison( stats->encode_time_ms.AddSample( (frame_stats.encoded_time - frame_stats.pre_encode_time).ms()); stats->encode_frame_rate.AddEvent(frame_stats.encoded_time); + stats->total_encoded_images_payload += frame_stats.encoded_image_size; } else { if (frame_stats.pre_encode_time.IsFinite()) { stats->dropped_by_encoder++; @@ -590,6 +592,7 @@ void DefaultVideoQualityAnalyzer::ReportResults( const StreamStats& stats, const FrameCounters& frame_counters) { using ::webrtc::test::ImproveDirection; + TimeDelta test_duration = Now() - start_time_; double sum_squared_interframe_delays_secs = 0; Timestamp video_start_time = Timestamp::PlusInfinity(); @@ -667,6 +670,11 @@ void DefaultVideoQualityAnalyzer::ReportResults( /*important=*/false, ImproveDirection::kSmallerIsBetter); ReportResult("max_skipped", test_case_name, stats.skipped_between_rendered, "count", ImproveDirection::kSmallerIsBetter); + test::PrintResult( + "actual_encode_bitrate", "", test_case_name, + static_cast(stats.total_encoded_images_payload) / + static_cast(test_duration.us()) * kMicrosPerSecond, + "bytesPerSecond", /*important=*/false, ImproveDirection::kNone); } void DefaultVideoQualityAnalyzer::ReportResult( diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h index 219a77baa2..31e42675d1 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h @@ -102,6 +102,7 @@ struct StreamStats { SamplesStatsCounter time_between_freezes_ms; SamplesStatsCounter resolution_of_rendered_frame; + int64_t total_encoded_images_payload = 0; int64_t dropped_by_encoder = 0; int64_t dropped_before_encoder = 0; }; @@ -182,6 +183,8 @@ class DefaultVideoQualityAnalyzer : public VideoQualityAnalyzerInterface { absl::optional rendered_frame_width = absl::nullopt; absl::optional rendered_frame_height = absl::nullopt; + + int64_t encoded_image_size = 0; }; // Describes why comparison was done in overloaded mode (without calculating diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc index 2c7eb0e802..b461c6a424 100644 --- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc +++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.cc @@ -42,16 +42,12 @@ void VideoQualityMetricsReporter::OnStatsReports( const webrtc::StatsReport::Value* transmission_bitrate = stats_report->FindValue( StatsReport::StatsValueName::kStatsValueNameTransmitBitrate); - const webrtc::StatsReport::Value* actual_encode_bitrate = - stats_report->FindValue( - StatsReport::StatsValueName::kStatsValueNameActualEncBitrate); const webrtc::StatsReport::Value* target_encode_bitrate = stats_report->FindValue( StatsReport::StatsValueName::kStatsValueNameTargetEncBitrate); RTC_CHECK(available_send_bandwidth); RTC_CHECK(retransmission_bitrate); RTC_CHECK(transmission_bitrate); - RTC_CHECK(actual_encode_bitrate); RTC_CHECK(target_encode_bitrate); rtc::CritScope crit(&video_bwe_stats_lock_); @@ -62,8 +58,6 @@ void VideoQualityMetricsReporter::OnStatsReports( transmission_bitrate->int_val()); video_bwe_stats.retransmission_bitrate.AddSample( retransmission_bitrate->int_val()); - video_bwe_stats.actual_encode_bitrate.AddSample( - actual_encode_bitrate->int_val()); video_bwe_stats.target_encode_bitrate.AddSample( target_encode_bitrate->int_val()); } @@ -93,9 +87,6 @@ void VideoQualityMetricsReporter::ReportVideoBweResults( ReportResult("retransmission_bitrate", test_case_name, video_bwe_stats.retransmission_bitrate / kBitsInByte, "bytesPerSecond"); - ReportResult("actual_encode_bitrate", test_case_name, - video_bwe_stats.actual_encode_bitrate / kBitsInByte, - "bytesPerSecond"); ReportResult("target_encode_bitrate", test_case_name, video_bwe_stats.target_encode_bitrate / kBitsInByte, "bytesPerSecond"); diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h index 28cb0d80a5..fe2f1696c4 100644 --- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h +++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h @@ -26,7 +26,6 @@ struct VideoBweStats { SamplesStatsCounter available_send_bandwidth; SamplesStatsCounter transmission_bitrate; SamplesStatsCounter retransmission_bitrate; - SamplesStatsCounter actual_encode_bitrate; SamplesStatsCounter target_encode_bitrate; };