Index: webrtc/video/send_statistics_proxy.h |
diff --git a/webrtc/video/send_statistics_proxy.h b/webrtc/video/send_statistics_proxy.h |
index 956a8f6fe92d1b98728dd87d69dfff166a8cafa8..1d37f18b84163dd428e88e45f296b8b0b8690c99 100644 |
--- a/webrtc/video/send_statistics_proxy.h |
+++ b/webrtc/video/send_statistics_proxy.h |
@@ -47,7 +47,7 @@ class SendStatisticsProxy : public CpuOveruseMetricsObserver, |
virtual void OnSendEncodedImage(const EncodedImage& encoded_image, |
const RTPVideoHeader* rtp_video_header); |
// Used to update incoming frame rate. |
- void OnIncomingFrame(); |
+ void OnIncomingFrame(int width, int height); |
// From VideoEncoderRateObserver. |
void OnSetRates(uint32_t bitrate_bps, int framerate) override; |
@@ -61,7 +61,7 @@ class SendStatisticsProxy : public CpuOveruseMetricsObserver, |
void StatisticsUpdated(const RtcpStatistics& statistics, |
uint32_t ssrc) override; |
void CNameChanged(const char* cname, uint32_t ssrc) override; |
- // From RtcpPacketTypeCounterObserver |
+ // From RtcpPacketTypeCounterObserver. |
void RtcpPacketTypesCounterUpdated( |
uint32_t ssrc, |
const RtcpPacketTypeCounter& packet_counter) override; |
@@ -90,6 +90,15 @@ class SendStatisticsProxy : public CpuOveruseMetricsObserver, |
uint32_t ssrc) override; |
private: |
+ 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; |
+ }; |
struct StatsUpdateTimes { |
StatsUpdateTimes() : resolution_update_ms(0) {} |
int64_t resolution_update_ms; |
@@ -109,6 +118,13 @@ class SendStatisticsProxy : public CpuOveruseMetricsObserver, |
rtc::RateTracker sent_frame_rate_tracker_total_ GUARDED_BY(crit_); |
uint32_t last_sent_frame_timestamp_ GUARDED_BY(crit_); |
std::map<uint32_t, StatsUpdateTimes> update_times_ GUARDED_BY(crit_); |
+ |
+ int max_sent_width_per_timestamp_ GUARDED_BY(crit_); |
+ int max_sent_height_per_timestamp_ GUARDED_BY(crit_); |
+ SampleCounter input_width_counter_ GUARDED_BY(crit_); |
+ SampleCounter input_height_counter_ GUARDED_BY(crit_); |
+ SampleCounter sent_width_counter_ GUARDED_BY(crit_); |
+ SampleCounter sent_height_counter_ GUARDED_BY(crit_); |
}; |
} // namespace webrtc |