Deprecate legacy and unused DVR API
Bug: 65469368
Test: Build system and run VrHome; dvr_api-test
Change-Id: I366549319e96ed936815f100f8e64e6a1c4f52bb
diff --git a/libs/vr/libdvr/dvr_api.cpp b/libs/vr/libdvr/dvr_api.cpp
index 7d4e2d1..d14f040 100644
--- a/libs/vr/libdvr/dvr_api.cpp
+++ b/libs/vr/libdvr/dvr_api.cpp
@@ -41,10 +41,19 @@
} \
} while (0)
+#define DVR_V1_API_ENTRY_DEPRECATED(name) \
+ do { \
+ if ((offsetof(DvrApi_v1, name) + sizeof(dvr_api->name)) <= \
+ clamped_struct_size) { \
+ dvr_api->name = nullptr; \
+ } \
+ } while (0)
+
#include "include/dvr/dvr_api_entries.h"
// Undefine macro definitions to play nice with Google3 style rules.
#undef DVR_V1_API_ENTRY
+#undef DVR_V1_API_ENTRY_DEPRECATED
return 0;
}
diff --git a/libs/vr/libdvr/dvr_buffer.cpp b/libs/vr/libdvr/dvr_buffer.cpp
index 1a99234..10b5d28 100644
--- a/libs/vr/libdvr/dvr_buffer.cpp
+++ b/libs/vr/libdvr/dvr_buffer.cpp
@@ -38,11 +38,6 @@
extern "C" {
-void dvrWriteBufferCreateEmpty(DvrWriteBuffer** write_buffer) {
- if (write_buffer)
- *write_buffer = new DvrWriteBuffer;
-}
-
void dvrWriteBufferDestroy(DvrWriteBuffer* write_buffer) {
if (write_buffer != nullptr) {
ALOGW_IF(
@@ -57,14 +52,6 @@
return write_buffer && write_buffer->write_buffer;
}
-int dvrWriteBufferClear(DvrWriteBuffer* write_buffer) {
- if (!write_buffer)
- return -EINVAL;
-
- write_buffer->write_buffer = nullptr;
- return 0;
-}
-
int dvrWriteBufferGetId(DvrWriteBuffer* write_buffer) {
if (!write_buffer || !write_buffer->write_buffer)
return -EINVAL;
@@ -81,38 +68,6 @@
write_buffer->write_buffer->buffer()->buffer().get(), hardware_buffer);
}
-int dvrWriteBufferPost(DvrWriteBuffer* write_buffer, int ready_fence_fd,
- const void* meta, size_t meta_size_bytes) {
- if (!write_buffer || !write_buffer->write_buffer)
- return -EINVAL;
-
- pdx::LocalHandle fence(ready_fence_fd);
- int result = write_buffer->write_buffer->Post(fence, meta, meta_size_bytes);
- return result;
-}
-
-int dvrWriteBufferGain(DvrWriteBuffer* write_buffer, int* release_fence_fd) {
- if (!write_buffer || !write_buffer->write_buffer || !release_fence_fd)
- return -EINVAL;
-
- pdx::LocalHandle release_fence;
- int result = write_buffer->write_buffer->Gain(&release_fence);
- *release_fence_fd = release_fence.Release();
- return result;
-}
-
-int dvrWriteBufferGainAsync(DvrWriteBuffer* write_buffer) {
- if (!write_buffer || !write_buffer->write_buffer)
- return -EINVAL;
-
- return write_buffer->write_buffer->GainAsync();
-}
-
-void dvrReadBufferCreateEmpty(DvrReadBuffer** read_buffer) {
- if (read_buffer)
- *read_buffer = new DvrReadBuffer;
-}
-
void dvrReadBufferDestroy(DvrReadBuffer* read_buffer) {
if (read_buffer != nullptr) {
ALOGW_IF(
@@ -127,14 +82,6 @@
return read_buffer && read_buffer->read_buffer;
}
-int dvrReadBufferClear(DvrReadBuffer* read_buffer) {
- if (!read_buffer)
- return -EINVAL;
-
- read_buffer->read_buffer = nullptr;
- return 0;
-}
-
int dvrReadBufferGetId(DvrReadBuffer* read_buffer) {
if (!read_buffer || !read_buffer->read_buffer)
return -EINVAL;
@@ -151,34 +98,6 @@
read_buffer->read_buffer->buffer()->buffer().get(), hardware_buffer);
}
-int dvrReadBufferAcquire(DvrReadBuffer* read_buffer, int* ready_fence_fd,
- void* meta, size_t meta_size_bytes) {
- if (!read_buffer || !read_buffer->read_buffer)
- return -EINVAL;
-
- pdx::LocalHandle ready_fence;
- int result =
- read_buffer->read_buffer->Acquire(&ready_fence, meta, meta_size_bytes);
- *ready_fence_fd = ready_fence.Release();
- return result;
-}
-
-int dvrReadBufferRelease(DvrReadBuffer* read_buffer, int release_fence_fd) {
- if (!read_buffer || !read_buffer->read_buffer)
- return -EINVAL;
-
- pdx::LocalHandle fence(release_fence_fd);
- int result = read_buffer->read_buffer->Release(fence);
- return result;
-}
-
-int dvrReadBufferReleaseAsync(DvrReadBuffer* read_buffer) {
- if (!read_buffer || !read_buffer->read_buffer)
- return -EINVAL;
-
- return read_buffer->read_buffer->ReleaseAsync();
-}
-
void dvrBufferDestroy(DvrBuffer* buffer) { delete buffer; }
int dvrBufferGetAHardwareBuffer(DvrBuffer* buffer,
@@ -196,27 +115,4 @@
return android::dvr::kSharedBufferLayoutVersion;
}
-const struct native_handle* dvrWriteBufferGetNativeHandle(
- DvrWriteBuffer* write_buffer) {
- if (!write_buffer || !write_buffer->write_buffer)
- return nullptr;
-
- return write_buffer->write_buffer->native_handle();
-}
-
-const struct native_handle* dvrReadBufferGetNativeHandle(
- DvrReadBuffer* read_buffer) {
- if (!read_buffer || !read_buffer->read_buffer)
- return nullptr;
-
- return read_buffer->read_buffer->native_handle();
-}
-
-const struct native_handle* dvrBufferGetNativeHandle(DvrBuffer* buffer) {
- if (!buffer || !buffer->buffer)
- return nullptr;
-
- return buffer->buffer->handle();
-}
-
} // extern "C"
diff --git a/libs/vr/libdvr/dvr_buffer_queue.cpp b/libs/vr/libdvr/dvr_buffer_queue.cpp
index c36d190..3efe83a 100644
--- a/libs/vr/libdvr/dvr_buffer_queue.cpp
+++ b/libs/vr/libdvr/dvr_buffer_queue.cpp
@@ -273,14 +273,6 @@
return write_queue->id();
}
-int dvrWriteBufferQueueGetExternalSurface(DvrWriteBufferQueue* write_queue,
- ANativeWindow** out_window) {
- ALOGW(
- "dvrWriteBufferQueueGetExternalSurface: This API has been deprecated and "
- "renamed to dvrWriteBufferQueueGetANativeWindow.");
- return dvrWriteBufferQueueGetANativeWindow(write_queue, out_window);
-}
-
int dvrWriteBufferQueueGetANativeWindow(DvrWriteBufferQueue* write_queue,
ANativeWindow** out_window) {
if (!write_queue || !out_window)
@@ -297,15 +289,6 @@
return write_queue->CreateReadQueue(out_read_queue);
}
-int dvrWriteBufferQueueDequeue(DvrWriteBufferQueue* write_queue, int timeout,
- DvrWriteBuffer* write_buffer,
- int* out_fence_fd) {
- if (!write_queue || !write_buffer || !out_fence_fd)
- return -EINVAL;
-
- return write_queue->Dequeue(timeout, write_buffer, out_fence_fd);
-}
-
int dvrWriteBufferQueueGainBuffer(DvrWriteBufferQueue* write_queue, int timeout,
DvrWriteBuffer** out_write_buffer,
DvrNativeBufferMetadata* out_meta,
@@ -355,34 +338,6 @@
return 0;
}
-int DvrReadBufferQueue::Dequeue(int timeout, DvrReadBuffer* read_buffer,
- int* out_fence_fd, void* out_meta,
- size_t meta_size_bytes) {
- if (meta_size_bytes != consumer_queue_->metadata_size()) {
- ALOGE(
- "DvrReadBufferQueue::Dequeue: Invalid metadata size, expected (%zu), "
- "but actual (%zu).",
- consumer_queue_->metadata_size(), meta_size_bytes);
- return -EINVAL;
- }
-
- size_t slot;
- pdx::LocalHandle acquire_fence;
- auto buffer_status = consumer_queue_->Dequeue(
- timeout, &slot, out_meta, meta_size_bytes, &acquire_fence);
- if (!buffer_status) {
- ALOGE_IF(buffer_status.error() != ETIMEDOUT,
- "dvrReadBufferQueueDequeue: Failed to dequeue buffer: %s",
- buffer_status.GetErrorMessage().c_str());
- return -buffer_status.error();
- }
-
- read_buffer->read_buffer = buffer_status.take();
- *out_fence_fd = acquire_fence.Release();
-
- return 0;
-}
-
int DvrReadBufferQueue::AcquireBuffer(int timeout,
DvrReadBuffer** out_read_buffer,
DvrNativeBufferMetadata* out_meta,
diff --git a/libs/vr/libdvr/include/dvr/dvr_api.h b/libs/vr/libdvr/include/dvr/dvr_api.h
index 499b7c1..80ffc82 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api.h
@@ -443,11 +443,13 @@
struct DvrApi_v1 {
// Defines an API entry for V1 (no version suffix).
#define DVR_V1_API_ENTRY(name) Dvr##name##Ptr name
+#define DVR_V1_API_ENTRY_DEPRECATED(name) Dvr##name##Ptr name
#include "dvr_api_entries.h"
// Undefine macro definitions to play nice with Google3 style rules.
#undef DVR_V1_API_ENTRY
+#undef DVR_V1_API_ENTRY_DEPRECATED
};
int dvrGetApi(void* api, size_t struct_size, int version);
diff --git a/libs/vr/libdvr/include/dvr/dvr_api_entries.h b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
index cce8c7e..f0d8ec6 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api_entries.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
@@ -8,6 +8,10 @@
#error Do not include this header directly.
#endif
+#ifndef DVR_V1_API_ENTRY_DEPRECATED
+#error Do not include this header directly.
+#endif
+
// Do not delete this line: BEGIN CODEGEN OUTPUT
// Display manager client
DVR_V1_API_ENTRY(DisplayManagerCreate);
@@ -32,42 +36,42 @@
DVR_V1_API_ENTRY(SurfaceStateGetAttributes);
// Write buffer
-DVR_V1_API_ENTRY(WriteBufferCreateEmpty);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferCreateEmpty);
DVR_V1_API_ENTRY(WriteBufferDestroy);
DVR_V1_API_ENTRY(WriteBufferIsValid);
-DVR_V1_API_ENTRY(WriteBufferClear);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferClear);
DVR_V1_API_ENTRY(WriteBufferGetId);
DVR_V1_API_ENTRY(WriteBufferGetAHardwareBuffer);
-DVR_V1_API_ENTRY(WriteBufferPost);
-DVR_V1_API_ENTRY(WriteBufferGain);
-DVR_V1_API_ENTRY(WriteBufferGainAsync);
-DVR_V1_API_ENTRY(WriteBufferGetNativeHandle);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferPost);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferGain);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferGainAsync);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferGetNativeHandle);
// Read buffer
-DVR_V1_API_ENTRY(ReadBufferCreateEmpty);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferCreateEmpty);
DVR_V1_API_ENTRY(ReadBufferDestroy);
DVR_V1_API_ENTRY(ReadBufferIsValid);
-DVR_V1_API_ENTRY(ReadBufferClear);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferClear);
DVR_V1_API_ENTRY(ReadBufferGetId);
DVR_V1_API_ENTRY(ReadBufferGetAHardwareBuffer);
-DVR_V1_API_ENTRY(ReadBufferAcquire);
-DVR_V1_API_ENTRY(ReadBufferRelease);
-DVR_V1_API_ENTRY(ReadBufferReleaseAsync);
-DVR_V1_API_ENTRY(ReadBufferGetNativeHandle);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferAcquire);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferRelease);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferReleaseAsync);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferGetNativeHandle);
// Buffer
DVR_V1_API_ENTRY(BufferDestroy);
DVR_V1_API_ENTRY(BufferGetAHardwareBuffer);
-DVR_V1_API_ENTRY(BufferGetNativeHandle);
+DVR_V1_API_ENTRY_DEPRECATED(BufferGetNativeHandle);
DVR_V1_API_ENTRY(BufferGlobalLayoutVersionGet);
// Write buffer queue
DVR_V1_API_ENTRY(WriteBufferQueueDestroy);
DVR_V1_API_ENTRY(WriteBufferQueueGetCapacity);
DVR_V1_API_ENTRY(WriteBufferQueueGetId);
-DVR_V1_API_ENTRY(WriteBufferQueueGetExternalSurface); // deprecated
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferQueueGetExternalSurface);
DVR_V1_API_ENTRY(WriteBufferQueueCreateReadQueue);
-DVR_V1_API_ENTRY(WriteBufferQueueDequeue);
+DVR_V1_API_ENTRY_DEPRECATED(WriteBufferQueueDequeue);
DVR_V1_API_ENTRY(WriteBufferQueueResizeBuffer);
// Read buffer queue
@@ -75,7 +79,7 @@
DVR_V1_API_ENTRY(ReadBufferQueueGetCapacity);
DVR_V1_API_ENTRY(ReadBufferQueueGetId);
DVR_V1_API_ENTRY(ReadBufferQueueCreateReadQueue);
-DVR_V1_API_ENTRY(ReadBufferQueueDequeue);
+DVR_V1_API_ENTRY_DEPRECATED(ReadBufferQueueDequeue);
DVR_V1_API_ENTRY(ReadBufferQueueSetBufferAvailableCallback);
DVR_V1_API_ENTRY(ReadBufferQueueSetBufferRemovedCallback);
DVR_V1_API_ENTRY(ReadBufferQueueHandleEvents);
diff --git a/libs/vr/libdvr/include/dvr/dvr_buffer.h b/libs/vr/libdvr/include/dvr/dvr_buffer.h
index 935a7b2..4234844 100644
--- a/libs/vr/libdvr/include/dvr/dvr_buffer.h
+++ b/libs/vr/libdvr/include/dvr/dvr_buffer.h
@@ -14,20 +14,12 @@
typedef struct AHardwareBuffer AHardwareBuffer;
struct native_handle;
-// Creates an empty write buffer that may be filled with an acutal buffer by
-// other functions.
-void dvrWriteBufferCreateEmpty(DvrWriteBuffer** write_buffer);
-
// Destroys the write buffer.
void dvrWriteBufferDestroy(DvrWriteBuffer* write_buffer);
// Returns 1 if the given write buffer object contains a buffer, 0 otherwise.
int dvrWriteBufferIsValid(DvrWriteBuffer* write_buffer);
-// Clears the contents of the buffer object. After a call to this function
-// dvrWriteBufferIsValid on the same buffer object returns 0.
-int dvrWriteBufferClear(DvrWriteBuffer* write_buffer);
-
// Returns the global BufferHub id of this buffer.
int dvrWriteBufferGetId(DvrWriteBuffer* write_buffer);
@@ -36,34 +28,12 @@
int dvrWriteBufferGetAHardwareBuffer(DvrWriteBuffer* write_buffer,
AHardwareBuffer** hardware_buffer);
-// Posts the buffer, notifying any connected read buffers. Takes ownership of
-// |ready_fence_fd|.
-int dvrWriteBufferPost(DvrWriteBuffer* write_buffer, int ready_fence_fd,
- const void* meta, size_t meta_size_bytes);
-
-// Gains a buffer that has been released by all connected read buffers.
-int dvrWriteBufferGain(DvrWriteBuffer* write_buffer, int* release_fence_fd);
-int dvrWriteBufferGainAsync(DvrWriteBuffer* write_buffer);
-
-// TODO(eieio): Switch to return int and take an out parameter for the native
-// handle.
-const struct native_handle* dvrWriteBufferGetNativeHandle(
- DvrWriteBuffer* write_buffer);
-
-// Creates an empty read buffer that may be filled with and actual buffer by
-// other functions.
-void dvrReadBufferCreateEmpty(DvrReadBuffer** read_buffer);
-
// Destroys the read buffer.
void dvrReadBufferDestroy(DvrReadBuffer* read_buffer);
// Returns 1 if the given write buffer object contains a buffer, 0 otherwise.
int dvrReadBufferIsValid(DvrReadBuffer* read_buffer);
-// Clears the contents of the buffer object. After a call to this function
-// dvrReadBufferIsValid on the same buffer object returns 0.
-int dvrReadBufferClear(DvrReadBuffer* read_buffer);
-
// Returns the global BufferHub id of this buffer.
int dvrReadBufferGetId(DvrReadBuffer* read_buffer);
@@ -72,21 +42,6 @@
int dvrReadBufferGetAHardwareBuffer(DvrReadBuffer* read_buffer,
AHardwareBuffer** hardware_buffer);
-// Acquires the read buffer after it has been posted by the write buffer it is
-// connected to.
-int dvrReadBufferAcquire(DvrReadBuffer* read_buffer, int* ready_fence_fd,
- void* meta, size_t meta_size_bytes);
-
-// Releases the read buffer, notifying the write buffer it is connected to.
-// Takes ownership of |release_fence_fd|.
-int dvrReadBufferRelease(DvrReadBuffer* read_buffer, int release_fence_fd);
-int dvrReadBufferReleaseAsync(DvrReadBuffer* read_buffer);
-
-// TODO(eieio): Switch to return int and take an out parameter for the native
-// handle.
-const struct native_handle* dvrReadBufferGetNativeHandle(
- DvrReadBuffer* read_buffer);
-
// Destroys the buffer.
void dvrBufferDestroy(DvrBuffer* buffer);
@@ -98,10 +53,6 @@
// Retrieve the shared buffer layout version defined in dvr_shared_buffers.h.
int dvrBufferGlobalLayoutVersionGet();
-// TODO(eieio): Switch to return int and take an out parameter for the native
-// handle.
-const struct native_handle* dvrBufferGetNativeHandle(DvrBuffer* buffer);
-
__END_DECLS
#endif // ANDROID_DVR_BUFFER_H_
diff --git a/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h b/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
index bf695c7..ac789da 100644
--- a/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
+++ b/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
@@ -76,10 +76,6 @@
int dvrWriteBufferQueueGetANativeWindow(DvrWriteBufferQueue* write_queue,
ANativeWindow** out_window);
-// @deprecated Please use dvrWriteBufferQueueGetANativeWindow instead.
-int dvrWriteBufferQueueGetExternalSurface(DvrWriteBufferQueue* write_queue,
- ANativeWindow** out_window);
-
// Create a read buffer queue from an existing write buffer queue.
//
// @param write_queue The DvrWriteBufferQueue of interest.
@@ -89,10 +85,6 @@
int dvrWriteBufferQueueCreateReadQueue(DvrWriteBufferQueue* write_queue,
DvrReadBufferQueue** out_read_queue);
-// @deprecated Please use dvrWriteBufferQueueGainBuffer instead.
-int dvrWriteBufferQueueDequeue(DvrWriteBufferQueue* write_queue, int timeout,
- DvrWriteBuffer* out_buffer, int* out_fence_fd);
-
// Gains a buffer to write into.
//
// @param write_queue The DvrWriteBufferQueue to gain buffer from.
@@ -176,11 +168,6 @@
int dvrReadBufferQueueCreateReadQueue(DvrReadBufferQueue* read_queue,
DvrReadBufferQueue** out_read_queue);
-// @deprecated Please use dvrReadBufferQueueAcquireBuffer instead.
-int dvrReadBufferQueueDequeue(DvrReadBufferQueue* read_queue, int timeout,
- DvrReadBuffer* out_buffer, int* out_fence_fd,
- void* out_meta, size_t meta_size_bytes);
-
// Dequeues a buffer to read from.
//
// @param read_queue The DvrReadBufferQueue to acquire buffer from.
diff --git a/libs/vr/libdvr/tests/dvr_display_manager-test.cpp b/libs/vr/libdvr/tests/dvr_display_manager-test.cpp
index f83b26e..c9a5c09 100644
--- a/libs/vr/libdvr/tests/dvr_display_manager-test.cpp
+++ b/libs/vr/libdvr/tests/dvr_display_manager-test.cpp
@@ -845,10 +845,10 @@
ASSERT_NE(nullptr, write_queue.get());
DvrWriteBuffer* buffer = nullptr;
- dvrWriteBufferCreateEmpty(&buffer);
+ DvrNativeBufferMetadata metadata;
int fence_fd = -1;
- int error =
- dvrWriteBufferQueueDequeue(write_queue.get(), 1000, buffer, &fence_fd);
+ int error = dvrWriteBufferQueueGainBuffer(write_queue.get(), /*timeout=*/1000,
+ &buffer, &metadata, &fence_fd);
ASSERT_EQ(0, error);
AHardwareBuffer* hardware_buffer = nullptr;