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:
parent
a27be8e4a1
commit
30377c7f71
@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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];
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user