Change the parameters of calculating maximum decode time.

- Reduce the window size from 20 to 10 seconds. If there is
  any spurious high decode time, it will be faster to pass it.
- Ignore more samples at first because HW decoder has higher
  initialization latency.

BUG=crbug.com/298176
TEST=Run apprtc loopback on Chromebook Daisy.
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2315005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4874 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/video_coding/main/source/codec_timer.cc b/webrtc/modules/video_coding/main/source/codec_timer.cc
index 9fee00b..a462258 100644
--- a/webrtc/modules/video_coding/main/source/codec_timer.cc
+++ b/webrtc/modules/video_coding/main/source/codec_timer.cc
@@ -15,10 +15,13 @@
 namespace webrtc
 {
 
+// The first kIgnoredSampleCount samples will be ignored.
+static const int32_t kIgnoredSampleCount = 5;
+
 VCMCodecTimer::VCMCodecTimer()
 :
 _filteredMax(0),
-_firstDecodeTime(true),
+_ignoredSampleCount(0),
 _shortMax(0),
 _history()
 {
@@ -35,7 +38,7 @@
 void VCMCodecTimer::Reset()
 {
     _filteredMax = 0;
-    _firstDecodeTime = true;
+    _ignoredSampleCount = 0;
     _shortMax = 0;
     for (int i=0; i < MAX_HISTORY_SIZE; i++)
     {
@@ -47,14 +50,14 @@
 // Update the max-value filter
 void VCMCodecTimer::MaxFilter(int32_t decodeTime, int64_t nowMs)
 {
-    if (!_firstDecodeTime)
+    if (_ignoredSampleCount >= kIgnoredSampleCount)
     {
         UpdateMaxHistory(decodeTime, nowMs);
         ProcessHistory(nowMs);
     }
     else
     {
-        _firstDecodeTime = false;
+        _ignoredSampleCount++;
     }
 }
 
diff --git a/webrtc/modules/video_coding/main/source/codec_timer.h b/webrtc/modules/video_coding/main/source/codec_timer.h
index e56aa6d..9268e8d 100644
--- a/webrtc/modules/video_coding/main/source/codec_timer.h
+++ b/webrtc/modules/video_coding/main/source/codec_timer.h
@@ -18,7 +18,7 @@
 {
 
 // MAX_HISTORY_SIZE * SHORT_FILTER_MS defines the window size in milliseconds
-#define MAX_HISTORY_SIZE 20
+#define MAX_HISTORY_SIZE 10
 #define SHORT_FILTER_MS 1000
 
 class VCMShortMaxSample
@@ -50,9 +50,10 @@
     void ProcessHistory(int64_t nowMs);
 
     int32_t                     _filteredMax;
-    bool                              _firstDecodeTime;
+    // The number of samples ignored so far.
+    int32_t                     _ignoredSampleCount;
     int32_t                     _shortMax;
-    VCMShortMaxSample                 _history[MAX_HISTORY_SIZE];
+    VCMShortMaxSample           _history[MAX_HISTORY_SIZE];
 
 };