Define dvrTrackingCameraDestroy API
It actually makes more sense to have a dedicated Destroy method rather
than reuse dvrTrackingCameraStop.
Bug: 78173557
Bug: 78171546
Test: dvr_tracking-test
Change-Id: I689c2328fe8b4aa80cb3678fee38ced6617adaca
diff --git a/libs/vr/libdvr/dvr_tracking.cpp b/libs/vr/libdvr/dvr_tracking.cpp
index 5ba5a1f..5479491 100644
--- a/libs/vr/libdvr/dvr_tracking.cpp
+++ b/libs/vr/libdvr/dvr_tracking.cpp
@@ -15,6 +15,10 @@
return -ENOSYS;
}
+void dvrTrackingCameraDestroy(DvrTrackingCamera*) {
+ ALOGE("dvrTrackingCameraDestroy is not implemented.");
+}
+
int dvrTrackingCameraStart(DvrTrackingCamera*, DvrWriteBufferQueue*) {
ALOGE("dvrTrackingCameraCreate is not implemented.");
return -ENOSYS;
diff --git a/libs/vr/libdvr/include/dvr/dvr_api.h b/libs/vr/libdvr/include/dvr/dvr_api.h
index 0fd7bfd..32e4d91 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api.h
@@ -371,6 +371,7 @@
// dvr_tracking.h
typedef int (*DvrTrackingCameraCreatePtr)(DvrTrackingCamera** out_camera);
+typedef void (*DvrTrackingCameraDestroyPtr)(DvrTrackingCamera* camera);
typedef int (*DvrTrackingCameraStartPtr)(DvrTrackingCamera* camera,
DvrWriteBufferQueue* write_queue);
typedef int (*DvrTrackingCameraStopPtr)(DvrTrackingCamera* camera);
diff --git a/libs/vr/libdvr/include/dvr/dvr_api_entries.h b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
index 28c0c07..c81efc0 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api_entries.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
@@ -184,5 +184,6 @@
// Tracking
DVR_V1_API_ENTRY(TrackingCameraCreate);
+DVR_V1_API_ENTRY(TrackingCameraDestroy);
DVR_V1_API_ENTRY(TrackingCameraStart);
DVR_V1_API_ENTRY(TrackingCameraStop);
diff --git a/libs/vr/libdvr/include/dvr/dvr_tracking.h b/libs/vr/libdvr/include/dvr/dvr_tracking.h
index d080627..4abf0f2 100644
--- a/libs/vr/libdvr/include/dvr/dvr_tracking.h
+++ b/libs/vr/libdvr/include/dvr/dvr_tracking.h
@@ -23,6 +23,11 @@
// @return Zero on success, or negative error code.
int dvrTrackingCameraCreate(DvrTrackingCamera** out_camera);
+// Destroys a DvrTrackingCamera handle.
+//
+// @param camera The DvrTrackingCamera of interest.
+void dvrTrackingCameraDestroy(DvrTrackingCamera* camera);
+
// Starts the DvrTrackingCamera.
//
// On successful return, all DvrReadBufferQueue's associated with the given
diff --git a/libs/vr/libdvr/tests/dvr_tracking-test.cpp b/libs/vr/libdvr/tests/dvr_tracking-test.cpp
index 6927283..cc83249 100644
--- a/libs/vr/libdvr/tests/dvr_tracking-test.cpp
+++ b/libs/vr/libdvr/tests/dvr_tracking-test.cpp
@@ -13,6 +13,7 @@
TEST_F(DvrTrackingTest, NotImplemented) {
ASSERT_TRUE(api_.TrackingCameraCreate != nullptr);
+ ASSERT_TRUE(api_.TrackingCameraDestroy != nullptr);
ASSERT_TRUE(api_.TrackingCameraStart != nullptr);
ASSERT_TRUE(api_.TrackingCameraStop != nullptr);