blob: 40b4638d69e0b6df5f2b6024caa6676aa4130853 [file] [log] [blame]
#ifndef ANDROID_DVR_LATENCY_MODEL_H_
#define ANDROID_DVR_LATENCY_MODEL_H_
#include <vector>
namespace android {
namespace dvr {
// This class models the latency from sensors. It will look at the first
// window_size measurements and return their average after that.
class LatencyModel {
public:
LatencyModel(size_t window_size);
~LatencyModel() = default;
void AddLatency(int64_t latency_ns);
int64_t CurrentLatencyEstimate() const { return latency_; }
private:
size_t window_size_;
int64_t latency_sum_ = 0;
size_t num_summed_ = 0;
int64_t latency_ = 0;
};
} // namespace dvr
} // namespace android
#endif // ANDROID_DVR_LATENCY_MODEL_H_