From f5e5f0d6439aeb6ef4b72fa3d6b07f8f65f587e4 Mon Sep 17 00:00:00 2001 From: Artem Titov Date: Wed, 27 Feb 2019 17:53:07 +0100 Subject: [PATCH] Reland "Improve example video analyzer for use in debugging" This is a reland of 1570218ec9fc5d00642a5cf0c1cd8a16260a19a6 Original change's description: > Improve example video analyzer for use in debugging > > Bug: webrtc:10138 > Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481 > Reviewed-on: https://webrtc-review.googlesource.com/c/124782 > Reviewed-by: Mirko Bonadei > Commit-Queue: Artem Titov > Cr-Commit-Position: refs/heads/master@{#26883} Bug: webrtc:10138 Change-Id: I9af9a4aa3ac4618fe1343510cd8c555a3e95a56f Reviewed-on: https://webrtc-review.googlesource.com/c/124823 Reviewed-by: Mirko Bonadei Commit-Queue: Artem Titov Cr-Commit-Position: refs/heads/master@{#26885} --- .../video/example_video_quality_analyzer.cc | 30 ++++++++++++++----- .../video/example_video_quality_analyzer.h | 12 +++++--- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/test/pc/e2e/analyzer/video/example_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/example_video_quality_analyzer.cc index 00c0a5b718..2937bcb188 100644 --- a/test/pc/e2e/analyzer/video/example_video_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/video/example_video_quality_analyzer.cc @@ -44,13 +44,16 @@ uint16_t ExampleVideoQualityAnalyzer::OnFrameCaptured( } void ExampleVideoQualityAnalyzer::OnFramePreEncode( - const webrtc::VideoFrame& frame) {} + const webrtc::VideoFrame& frame) { + rtc::CritScope crit(&lock_); + ++frames_pre_encoded_; +} void ExampleVideoQualityAnalyzer::OnFrameEncoded( uint16_t frame_id, const webrtc::EncodedImage& encoded_image) { rtc::CritScope crit(&lock_); - ++frames_sent_; + ++frames_encoded_; } void ExampleVideoQualityAnalyzer::OnFrameDropped( @@ -70,7 +73,10 @@ void ExampleVideoQualityAnalyzer::OnFrameReceived( void ExampleVideoQualityAnalyzer::OnFrameDecoded( const webrtc::VideoFrame& frame, absl::optional decode_time_ms, - absl::optional qp) {} + absl::optional qp) { + rtc::CritScope crit(&lock_); + ++frames_decoded_; +} void ExampleVideoQualityAnalyzer::OnFrameRendered( const webrtc::VideoFrame& frame) { @@ -112,9 +118,14 @@ uint64_t ExampleVideoQualityAnalyzer::frames_captured() const { return frames_captured_; } -uint64_t ExampleVideoQualityAnalyzer::frames_sent() const { +uint64_t ExampleVideoQualityAnalyzer::frames_pre_encoded() const { rtc::CritScope crit(&lock_); - return frames_sent_; + return frames_pre_encoded_; +} + +uint64_t ExampleVideoQualityAnalyzer::frames_encoded() const { + rtc::CritScope crit(&lock_); + return frames_encoded_; } uint64_t ExampleVideoQualityAnalyzer::frames_received() const { @@ -122,9 +133,9 @@ uint64_t ExampleVideoQualityAnalyzer::frames_received() const { return frames_received_; } -uint64_t ExampleVideoQualityAnalyzer::frames_dropped() const { +uint64_t ExampleVideoQualityAnalyzer::frames_decoded() const { rtc::CritScope crit(&lock_); - return frames_dropped_; + return frames_decoded_; } uint64_t ExampleVideoQualityAnalyzer::frames_rendered() const { @@ -132,5 +143,10 @@ uint64_t ExampleVideoQualityAnalyzer::frames_rendered() const { return frames_rendered_; } +uint64_t ExampleVideoQualityAnalyzer::frames_dropped() const { + rtc::CritScope crit(&lock_); + return frames_dropped_; +} + } // namespace test } // namespace webrtc diff --git a/test/pc/e2e/analyzer/video/example_video_quality_analyzer.h b/test/pc/e2e/analyzer/video/example_video_quality_analyzer.h index e8a2fa4ebb..7e96d4c218 100644 --- a/test/pc/e2e/analyzer/video/example_video_quality_analyzer.h +++ b/test/pc/e2e/analyzer/video/example_video_quality_analyzer.h @@ -52,10 +52,12 @@ class ExampleVideoQualityAnalyzer : public VideoQualityAnalyzerInterface { std::string GetStreamLabel(uint16_t frame_id) override; uint64_t frames_captured() const; - uint64_t frames_sent() const; + uint64_t frames_pre_encoded() const; + uint64_t frames_encoded() const; uint64_t frames_received() const; - uint64_t frames_dropped() const; + uint64_t frames_decoded() const; uint64_t frames_rendered() const; + uint64_t frames_dropped() const; private: // When peer A captured the frame it will come into analyzer's OnFrameCaptured @@ -71,10 +73,12 @@ class ExampleVideoQualityAnalyzer : public VideoQualityAnalyzerInterface { std::map frames_to_stream_label_ RTC_GUARDED_BY(lock_); uint16_t next_frame_id_ RTC_GUARDED_BY(lock_) = 0; uint64_t frames_captured_ RTC_GUARDED_BY(lock_) = 0; - uint64_t frames_sent_ RTC_GUARDED_BY(lock_) = 0; + uint64_t frames_pre_encoded_ RTC_GUARDED_BY(lock_) = 0; + uint64_t frames_encoded_ RTC_GUARDED_BY(lock_) = 0; uint64_t frames_received_ RTC_GUARDED_BY(lock_) = 0; - uint64_t frames_dropped_ RTC_GUARDED_BY(lock_) = 0; + uint64_t frames_decoded_ RTC_GUARDED_BY(lock_) = 0; uint64_t frames_rendered_ RTC_GUARDED_BY(lock_) = 0; + uint64_t frames_dropped_ RTC_GUARDED_BY(lock_) = 0; }; } // namespace test