Print timestamp lag in SensorPoseProvider-example
This is useful for assessing timestamp accuracy and latency.
Test: Invocation of the example.
Bug: 188502620
Change-Id: I685bc568ee4174157411cfe26628d0ef7b4f065a
diff --git a/media/libheadtracking/Android.bp b/media/libheadtracking/Android.bp
index 015fd7e..d134ca0 100644
--- a/media/libheadtracking/Android.bp
+++ b/media/libheadtracking/Android.bp
@@ -57,6 +57,7 @@
"libheadtracking",
"libheadtracking-binding",
"libsensor",
+ "libutils",
],
}
diff --git a/media/libheadtracking/SensorPoseProvider-example.cpp b/media/libheadtracking/SensorPoseProvider-example.cpp
index 30c6537..13db07e 100644
--- a/media/libheadtracking/SensorPoseProvider-example.cpp
+++ b/media/libheadtracking/SensorPoseProvider-example.cpp
@@ -19,9 +19,11 @@
#include <android/sensor.h>
#include <hardware/sensors.h>
+#include <utils/SystemClock.h>
#include <media/SensorPoseProvider.h>
+using android::elapsedRealtimeNano;
using android::media::Pose3f;
using android::media::SensorPoseProvider;
using android::media::Twist3f;
@@ -32,7 +34,12 @@
public:
void onPose(int64_t timestamp, int32_t handle, const Pose3f& pose,
const std::optional<Twist3f>& twist) override {
- std::cout << "onPose t=" << timestamp << " sensor=" << handle << " pose=" << pose
+ int64_t now = elapsedRealtimeNano();
+
+ std::cout << "onPose t=" << timestamp
+ << " lag=" << ((now - timestamp) / 1e6) << "[ms]"
+ << " sensor=" << handle
+ << " pose=" << pose
<< " twist=";
if (twist.has_value()) {
std::cout << twist.value();