Reset estimate if no frame has been seen for a certain time (to avoid large jitter if stop sending).
Add delay before start processing after a reset. BUG=1577 R=mflodman@webrtc.org, stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/8699006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5561 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "webrtc/modules/interface/module.h"
|
||||
#include "webrtc/system_wrappers/interface/constructor_magic.h"
|
||||
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
|
||||
#include "webrtc/test/testsupport/gtest_prod_util.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
@@ -104,6 +105,19 @@ class OveruseFrameDetector : public Module {
|
||||
virtual int32_t Process() OVERRIDE;
|
||||
|
||||
private:
|
||||
FRIEND_TEST_ALL_PREFIXES(OveruseFrameDetectorTest, TriggerOveruse);
|
||||
FRIEND_TEST_ALL_PREFIXES(OveruseFrameDetectorTest, OveruseAndRecover);
|
||||
FRIEND_TEST_ALL_PREFIXES(OveruseFrameDetectorTest, DoubleOveruseAndRecover);
|
||||
FRIEND_TEST_ALL_PREFIXES(
|
||||
OveruseFrameDetectorTest, TriggerNormalUsageWithMinProcessCount);
|
||||
FRIEND_TEST_ALL_PREFIXES(
|
||||
OveruseFrameDetectorTest, ConstantOveruseGivesNoNormalUsage);
|
||||
FRIEND_TEST_ALL_PREFIXES(OveruseFrameDetectorTest, LastCaptureJitter);
|
||||
|
||||
void set_min_process_count_before_reporting(int64_t count) {
|
||||
min_process_count_before_reporting_ = count;
|
||||
}
|
||||
|
||||
class EncodeTimeAvg;
|
||||
class EncodeUsage;
|
||||
class CaptureQueueDelay;
|
||||
@@ -111,6 +125,8 @@ class OveruseFrameDetector : public Module {
|
||||
bool IsOverusing();
|
||||
bool IsUnderusing(int64_t time_now);
|
||||
|
||||
bool DetectFrameTimeout(int64_t now) const;
|
||||
|
||||
// Protecting all members.
|
||||
scoped_ptr<CriticalSectionWrapper> crit_;
|
||||
|
||||
@@ -118,11 +134,14 @@ class OveruseFrameDetector : public Module {
|
||||
const float normaluse_stddev_ms_;
|
||||
const float overuse_stddev_ms_;
|
||||
|
||||
int64_t min_process_count_before_reporting_;
|
||||
|
||||
// Observer getting overuse reports.
|
||||
CpuOveruseObserver* observer_;
|
||||
|
||||
Clock* clock_;
|
||||
int64_t next_process_time_;
|
||||
int64_t num_process_times_;
|
||||
|
||||
Statistics capture_deltas_;
|
||||
int64_t last_capture_time_;
|
||||
|
||||
Reference in New Issue
Block a user