Implement timeline in libandroid ASurfaceControl.
As part of choreographer project.
Bug: 198192003
Test: atest ASurfaceControlTest
Change-Id: I36fdeae1d2bc07fdbd487fc0a40324fe48baca09
diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt
index f00eef2..3c1aa44 100644
--- a/native/android/libandroid.map.txt
+++ b/native/android/libandroid.map.txt
@@ -263,6 +263,7 @@
ASurfaceTransaction_setEnableBackPressure; # introduced=31
ASurfaceTransaction_setFrameRate; # introduced=30
ASurfaceTransaction_setFrameRateWithChangeStrategy; # introduced=31
+ ASurfaceTransaction_setFrameTimeline; # introduced=Tiramisu
ASurfaceTransaction_setGeometry; # introduced=29
ASurfaceTransaction_setHdrMetadata_cta861_3; # introduced=29
ASurfaceTransaction_setHdrMetadata_smpte2086; # introduced=29
diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp
index ceba4d6..d3b7744 100644
--- a/native/android/surface_control.cpp
+++ b/native/android/surface_control.cpp
@@ -659,3 +659,11 @@
transaction->addTransactionCommittedCallback(callback, context);
}
+
+void ASurfaceTransaction_setFrameTimeline(ASurfaceTransaction* aSurfaceTransaction,
+ int64_t vsyncId) {
+ CHECK_NOT_NULL(aSurfaceTransaction);
+ // TODO(b/210043506): Get start time from platform.
+ ASurfaceTransaction_to_Transaction(aSurfaceTransaction)
+ ->setFrameTimelineInfo({.vsyncId = vsyncId, .startTimeNanos = 0});
+}