| Index: webrtc/video/receive_statistics_proxy.h
|
| diff --git a/webrtc/video/receive_statistics_proxy.h b/webrtc/video/receive_statistics_proxy.h
|
| index 2e93d70f153770d775a3fd08112b7570ca7cb518..9a6807c4b2c734a5c695510ef57b684930ecd7af 100644
|
| --- a/webrtc/video/receive_statistics_proxy.h
|
| +++ b/webrtc/video/receive_statistics_proxy.h
|
| @@ -20,6 +20,7 @@
|
| #include "webrtc/modules/video_coding/include/video_coding_defines.h"
|
| #include "webrtc/rtc_base/criticalsection.h"
|
| #include "webrtc/rtc_base/moving_max_counter.h"
|
| +#include "webrtc/rtc_base/optional.h"
|
| #include "webrtc/rtc_base/rate_statistics.h"
|
| #include "webrtc/rtc_base/ratetracker.h"
|
| #include "webrtc/rtc_base/thread_annotations.h"
|
| @@ -66,7 +67,9 @@ class ReceiveStatisticsProxy : public VCMReceiveStatisticsCallback,
|
| void OnReceiveRatesUpdated(uint32_t bitRate, uint32_t frameRate) override;
|
| void OnFrameCountsUpdated(const FrameCounts& frame_counts) override;
|
| void OnDiscardedPacketsUpdated(int discarded_packets) override;
|
| - void OnCompleteFrame(bool is_keyframe, size_t size_bytes) override;
|
| + void OnCompleteFrame(bool is_keyframe,
|
| + size_t size_bytes,
|
| + VideoContentType content_type) override;
|
| void OnFrameBufferTimingsUpdated(int decode_ms,
|
| int max_decode_ms,
|
| int current_delay_ms,
|
| @@ -98,16 +101,33 @@ class ReceiveStatisticsProxy : public VCMReceiveStatisticsCallback,
|
| SampleCounter() : sum(0), num_samples(0) {}
|
| void Add(int sample);
|
| int Avg(int64_t min_required_samples) const;
|
| + int Max() const;
|
| void Reset();
|
| + void Add(const SampleCounter& other);
|
|
|
| private:
|
| int64_t sum;
|
| int64_t num_samples;
|
| + rtc::Optional<int> max;
|
| };
|
| +
|
| struct QpCounters {
|
| SampleCounter vp8;
|
| };
|
|
|
| + struct ContentSpecificStats {
|
| + void Add(const ContentSpecificStats& other);
|
| +
|
| + SampleCounter e2e_delay_counter;
|
| + SampleCounter interframe_delay_counter;
|
| + int64_t flow_duration_ms = 0;
|
| + int64_t total_media_bytes = 0;
|
| + SampleCounter received_width;
|
| + SampleCounter received_height;
|
| + SampleCounter qp_counter;
|
| + FrameCounts frame_counts;
|
| + };
|
| +
|
| void UpdateHistograms() EXCLUSIVE_LOCKS_REQUIRED(crit_);
|
|
|
| void QualitySample() EXCLUSIVE_LOCKS_REQUIRED(crit_);
|
| @@ -140,24 +160,16 @@ class ReceiveStatisticsProxy : public VCMReceiveStatisticsCallback,
|
| rtc::RateTracker render_fps_tracker_ GUARDED_BY(crit_);
|
| rtc::RateTracker render_pixel_tracker_ GUARDED_BY(crit_);
|
| rtc::RateTracker total_byte_tracker_ GUARDED_BY(crit_);
|
| - SampleCounter render_width_counter_ GUARDED_BY(crit_);
|
| - SampleCounter render_height_counter_ GUARDED_BY(crit_);
|
| SampleCounter sync_offset_counter_ GUARDED_BY(crit_);
|
| SampleCounter decode_time_counter_ GUARDED_BY(crit_);
|
| SampleCounter jitter_buffer_delay_counter_ GUARDED_BY(crit_);
|
| SampleCounter target_delay_counter_ GUARDED_BY(crit_);
|
| SampleCounter current_delay_counter_ GUARDED_BY(crit_);
|
| SampleCounter delay_counter_ GUARDED_BY(crit_);
|
| - SampleCounter e2e_delay_counter_video_ GUARDED_BY(crit_);
|
| - SampleCounter e2e_delay_counter_screenshare_ GUARDED_BY(crit_);
|
| - SampleCounter interframe_delay_counter_video_ GUARDED_BY(crit_);
|
| - SampleCounter interframe_delay_counter_screenshare_ GUARDED_BY(crit_);
|
| - int64_t e2e_delay_max_ms_video_ GUARDED_BY(crit_);
|
| - int64_t e2e_delay_max_ms_screenshare_ GUARDED_BY(crit_);
|
| - int64_t interframe_delay_max_ms_video_ GUARDED_BY(crit_);
|
| - int64_t interframe_delay_max_ms_screenshare_ GUARDED_BY(crit_);
|
| mutable rtc::MovingMaxCounter<int> interframe_delay_max_moving_
|
| GUARDED_BY(crit_);
|
| + std::map<VideoContentType, ContentSpecificStats> content_specific_stats_
|
| + GUARDED_BY(crit_);
|
| MaxCounter freq_offset_counter_ GUARDED_BY(crit_);
|
| int64_t first_report_block_time_ms_ GUARDED_BY(crit_);
|
| ReportBlockStats report_block_stats_ GUARDED_BY(crit_);
|
|
|