| Index: webrtc/video/receive_statistics_proxy.h
|
| diff --git a/webrtc/video/receive_statistics_proxy.h b/webrtc/video/receive_statistics_proxy.h
|
| index df763ad91073c98a0de74a144a9a9ed70de74eb3..0d229487b9c80c0f0ae42b929bb3203d991271a5 100644
|
| --- a/webrtc/video/receive_statistics_proxy.h
|
| +++ b/webrtc/video/receive_statistics_proxy.h
|
| @@ -14,6 +14,7 @@
|
| #include <string>
|
|
|
| #include "webrtc/base/criticalsection.h"
|
| +#include "webrtc/base/ratetracker.h"
|
| #include "webrtc/base/thread_annotations.h"
|
| #include "webrtc/common_types.h"
|
| #include "webrtc/frame_callback.h"
|
| @@ -42,9 +43,9 @@ class ReceiveStatisticsProxy : public ViEDecoderObserver,
|
| VideoReceiveStream::Stats GetStats() const;
|
|
|
| void OnDecodedFrame();
|
| - void OnRenderedFrame();
|
| + void OnRenderedFrame(int width, int height);
|
|
|
| - // Overrides VCMReceiveStatisticsCallback
|
| + // Overrides VCMReceiveStatisticsCallback.
|
| void OnReceiveRatesUpdated(uint32_t bitRate, uint32_t frameRate) override;
|
| void OnFrameCountsUpdated(const FrameCounts& frame_counts) override;
|
| void OnDiscardedPacketsUpdated(int discarded_packets) override;
|
| @@ -68,7 +69,7 @@ class ReceiveStatisticsProxy : public ViEDecoderObserver,
|
| uint32_t ssrc) override;
|
| void CNameChanged(const char* cname, uint32_t ssrc) override;
|
|
|
| - // Overrides RtcpPacketTypeCounterObserver
|
| + // Overrides RtcpPacketTypeCounterObserver.
|
| void RtcpPacketTypesCounterUpdated(
|
| uint32_t ssrc,
|
| const RtcpPacketTypeCounter& packet_counter) override;
|
| @@ -77,13 +78,27 @@ class ReceiveStatisticsProxy : public ViEDecoderObserver,
|
| uint32_t ssrc) override;
|
|
|
| private:
|
| - void UpdateHistograms() const;
|
| + struct SampleCounter {
|
| + SampleCounter() : sum(0), num_samples(0) {}
|
| + void Add(int sample);
|
| + int Avg(int min_required_samples) const;
|
| +
|
| + private:
|
| + int sum;
|
| + int num_samples;
|
| + };
|
| +
|
| + void UpdateHistograms() EXCLUSIVE_LOCKS_REQUIRED(crit_);
|
| +
|
| Clock* const clock_;
|
|
|
| mutable rtc::CriticalSection crit_;
|
| VideoReceiveStream::Stats stats_ GUARDED_BY(crit_);
|
| RateStatistics decode_fps_estimator_ GUARDED_BY(crit_);
|
| RateStatistics renders_fps_estimator_ GUARDED_BY(crit_);
|
| + rtc::RateTracker render_fps_tracker_total_ GUARDED_BY(crit_);
|
| + SampleCounter render_width_counter_ GUARDED_BY(crit_);
|
| + SampleCounter render_height_counter_ GUARDED_BY(crit_);
|
| ReportBlockStats report_block_stats_ GUARDED_BY(crit_);
|
| };
|
|
|
|
|