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 <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> 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 <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26885}
This commit is contained in:
Artem Titov 2019-02-27 17:53:07 +01:00 committed by Commit Bot
parent 2585979b1b
commit f5e5f0d643
2 changed files with 31 additions and 11 deletions

View File

@ -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<int32_t> decode_time_ms,
absl::optional<uint8_t> qp) {}
absl::optional<uint8_t> 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

View File

@ -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<uint16_t, std::string> 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