blob: bf0e687b7f2124ffbf8657d51f21314c4317fd39 [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:
explicit 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_