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
|
namespace webrtc
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// The first kIgnoredSampleCount samples will be ignored.
|
||||||
|
static const int32_t kIgnoredSampleCount = 5;
|
||||||
|
|
||||||
VCMCodecTimer::VCMCodecTimer()
|
VCMCodecTimer::VCMCodecTimer()
|
||||||
:
|
:
|
||||||
_filteredMax(0),
|
_filteredMax(0),
|
||||||
_firstDecodeTime(true),
|
_ignoredSampleCount(0),
|
||||||
_shortMax(0),
|
_shortMax(0),
|
||||||
_history()
|
_history()
|
||||||
{
|
{
|
||||||
@ -35,7 +38,7 @@ int32_t VCMCodecTimer::StopTimer(int64_t startTimeMs, int64_t nowMs)
|
|||||||
void VCMCodecTimer::Reset()
|
void VCMCodecTimer::Reset()
|
||||||
{
|
{
|
||||||
_filteredMax = 0;
|
_filteredMax = 0;
|
||||||
_firstDecodeTime = true;
|
_ignoredSampleCount = 0;
|
||||||
_shortMax = 0;
|
_shortMax = 0;
|
||||||
for (int i=0; i < MAX_HISTORY_SIZE; i++)
|
for (int i=0; i < MAX_HISTORY_SIZE; i++)
|
||||||
{
|
{
|
||||||
@ -47,14 +50,14 @@ void VCMCodecTimer::Reset()
|
|||||||
// Update the max-value filter
|
// Update the max-value filter
|
||||||
void VCMCodecTimer::MaxFilter(int32_t decodeTime, int64_t nowMs)
|
void VCMCodecTimer::MaxFilter(int32_t decodeTime, int64_t nowMs)
|
||||||
{
|
{
|
||||||
if (!_firstDecodeTime)
|
if (_ignoredSampleCount >= kIgnoredSampleCount)
|
||||||
{
|
{
|
||||||
UpdateMaxHistory(decodeTime, nowMs);
|
UpdateMaxHistory(decodeTime, nowMs);
|
||||||
ProcessHistory(nowMs);
|
ProcessHistory(nowMs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_firstDecodeTime = false;
|
_ignoredSampleCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ namespace webrtc
|
|||||||
{
|
{
|
||||||
|
|
||||||
// MAX_HISTORY_SIZE * SHORT_FILTER_MS defines the window size in milliseconds
|
// 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
|
#define SHORT_FILTER_MS 1000
|
||||||
|
|
||||||
class VCMShortMaxSample
|
class VCMShortMaxSample
|
||||||
@ -50,9 +50,10 @@ private:
|
|||||||
void ProcessHistory(int64_t nowMs);
|
void ProcessHistory(int64_t nowMs);
|
||||||
|
|
||||||
int32_t _filteredMax;
|
int32_t _filteredMax;
|
||||||
bool _firstDecodeTime;
|
// The number of samples ignored so far.
|
||||||
|
int32_t _ignoredSampleCount;
|
||||||
int32_t _shortMax;
|
int32_t _shortMax;
|
||||||
VCMShortMaxSample _history[MAX_HISTORY_SIZE];
|
VCMShortMaxSample _history[MAX_HISTORY_SIZE];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user