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
This commit is contained in:
wuchengli@chromium.org 2013-09-28 06:06:18 +00:00
parent a27be8e4a1
commit 30377c7f71
2 changed files with 11 additions and 7 deletions

View File

@ -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 @@ int32_t VCMCodecTimer::StopTimer(int64_t startTimeMs, int64_t nowMs)
void VCMCodecTimer::Reset()
{
_filteredMax = 0;
_firstDecodeTime = true;
_ignoredSampleCount = 0;
_shortMax = 0;
for (int i=0; i < MAX_HISTORY_SIZE; i++)
{
@ -47,14 +50,14 @@ void VCMCodecTimer::Reset()
// 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++;
}
}

View File

@ -18,7 +18,7 @@ namespace webrtc
{
// 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 @@ private:
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];
};