| Index: webrtc/modules/video_coding/codec_timer.h
|
| diff --git a/webrtc/modules/video_coding/codec_timer.h b/webrtc/modules/video_coding/codec_timer.h
|
| index 90ef6bb5e54b254d62f524a5809ddae581f2c5f7..8ebd82ab9c240f38070f6ef23ec5fa0ae81ccec4 100644
|
| --- a/webrtc/modules/video_coding/codec_timer.h
|
| +++ b/webrtc/modules/video_coding/codec_timer.h
|
| @@ -11,39 +11,45 @@
|
| #ifndef WEBRTC_MODULES_VIDEO_CODING_CODEC_TIMER_H_
|
| #define WEBRTC_MODULES_VIDEO_CODING_CODEC_TIMER_H_
|
|
|
| -#include <queue>
|
| -
|
| #include "webrtc/modules/include/module_common_types.h"
|
| -#include "webrtc/modules/video_coding/percentile_filter.h"
|
| #include "webrtc/typedefs.h"
|
|
|
| namespace webrtc {
|
| +
|
| +// MAX_HISTORY_SIZE * SHORT_FILTER_MS defines the window size in milliseconds
|
| +#define MAX_HISTORY_SIZE 10
|
| +#define SHORT_FILTER_MS 1000
|
| +
|
| +class VCMShortMaxSample {
|
| + public:
|
| + VCMShortMaxSample() : shortMax(0), timeMs(-1) {}
|
| +
|
| + int32_t shortMax;
|
| + int64_t timeMs;
|
| +};
|
|
|
| class VCMCodecTimer {
|
| public:
|
| VCMCodecTimer();
|
|
|
| - // Add a new decode time to the filter.
|
| - void AddTiming(int64_t new_decode_time_ms, int64_t now_ms);
|
| + // Updates the max filtered decode time.
|
| + void MaxFilter(int32_t newDecodeTimeMs, int64_t nowMs);
|
|
|
| - // Get the required decode time in ms. It is the 95th percentile observed
|
| - // decode time within a time window.
|
| - int64_t RequiredDecodeTimeMs() const;
|
| + // Empty the list of timers.
|
| + void Reset();
|
| +
|
| + // Get the required decode time in ms.
|
| + int32_t RequiredDecodeTimeMs(FrameType frameType) const;
|
|
|
| private:
|
| - struct Sample {
|
| - Sample(int64_t decode_time_ms, int64_t sample_time_ms);
|
| - int64_t decode_time_ms;
|
| - int64_t sample_time_ms;
|
| - };
|
| + void UpdateMaxHistory(int32_t decodeTime, int64_t now);
|
| + void ProcessHistory(int64_t nowMs);
|
|
|
| + int32_t _filteredMax;
|
| // The number of samples ignored so far.
|
| - int ignored_sample_count_;
|
| - // Queue with history of latest decode time values.
|
| - std::queue<Sample> history_;
|
| - // |filter_| contains the same values as |history_|, but in a data structure
|
| - // that allows efficient retrieval of the percentile value.
|
| - PercentileFilter filter_;
|
| + int32_t _ignoredSampleCount;
|
| + int32_t _shortMax;
|
| + VCMShortMaxSample _history[MAX_HISTORY_SIZE];
|
| };
|
|
|
| } // namespace webrtc
|
|
|