Int key for the named buffers.
Also, rename them to global buffers from named buffers.
Bug: 38320428
Test: Run frameworks/native/libs/vr/libdvr/tests on device
Change-Id: I2109aea77e35f2ccd8055208058df4b7287c1d5e
diff --git a/libs/vr/libdvr/dvr_display_manager.cpp b/libs/vr/libdvr/dvr_display_manager.cpp
index 40d93ba..e67e8c3 100644
--- a/libs/vr/libdvr/dvr_display_manager.cpp
+++ b/libs/vr/libdvr/dvr_display_manager.cpp
@@ -112,19 +112,20 @@
void dvrDisplayManagerDestroy(DvrDisplayManager* client) { delete client; }
-int dvrDisplayManagerSetupNamedBuffer(DvrDisplayManager* client,
- const char* name, size_t size,
- uint64_t usage, DvrBuffer** buffer_out) {
- if (!client || !name || !buffer_out)
+int dvrDisplayManagerSetupGlobalBuffer(DvrDisplayManager* client,
+ DvrGlobalBufferKey key, size_t size,
+ uint64_t usage, DvrBuffer** buffer_out) {
+ if (!client || !buffer_out)
return -EINVAL;
uint64_t gralloc_usage = AHardwareBuffer_convertToGrallocUsageBits(usage);
auto buffer_status =
- client->client->SetupNamedBuffer(name, size, gralloc_usage);
+ client->client->SetupGlobalBuffer(key, size, gralloc_usage);
if (!buffer_status) {
- ALOGE("dvrDisplayManagerSetupPoseBuffer: Failed to setup named buffer: %s",
- buffer_status.GetErrorMessage().c_str());
+ ALOGE(
+ "dvrDisplayManagerSetupGlobalBuffer: Failed to setup global buffer: %s",
+ buffer_status.GetErrorMessage().c_str());
return -buffer_status.error();
}
diff --git a/libs/vr/libdvr/dvr_surface.cpp b/libs/vr/libdvr/dvr_surface.cpp
index 67e2ae8..1fe9874 100644
--- a/libs/vr/libdvr/dvr_surface.cpp
+++ b/libs/vr/libdvr/dvr_surface.cpp
@@ -156,22 +156,22 @@
return 0;
}
-int dvrGetNamedBuffer(const char* name, DvrBuffer** out_buffer) {
+int dvrGetGlobalBuffer(DvrGlobalBufferKey key, DvrBuffer** out_buffer) {
auto client = DisplayClient::Create();
if (!client) {
- ALOGE("dvrGetNamedBuffer: Failed to create display client!");
+ ALOGE("dvrGetGlobalBuffer: Failed to create display client!");
return -ECOMM;
}
- if (out_buffer == nullptr || name == nullptr) {
- ALOGE("dvrGetNamedBuffer: Invalid inputs: name=%p, out_buffer=%p.", name,
+ if (out_buffer == nullptr) {
+ ALOGE("dvrGetGlobalBuffer: Invalid inputs: key=%d, out_buffer=%p.", key,
out_buffer);
return -EINVAL;
}
- auto status = client->GetNamedBuffer(name);
+ auto status = client->GetGlobalBuffer(key);
if (!status) {
- ALOGE("dvrGetNamedBuffer: Failed to find named buffer name=%s: %s", name,
+ ALOGE("dvrGetGlobalBuffer: Failed to find named buffer key=%d: %s", key,
status.GetErrorMessage().c_str());
return -status.error();
}
diff --git a/libs/vr/libdvr/include/dvr/dvr_api.h b/libs/vr/libdvr/include/dvr/dvr_api.h
index 8326a5b..ef2c975 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api.h
@@ -33,6 +33,7 @@
typedef struct DvrSurface DvrSurface;
typedef uint64_t DvrSurfaceAttributeType;
typedef int32_t DvrSurfaceAttributeKey;
+typedef int32_t DvrGlobalBufferKey;
typedef struct DvrSurfaceAttributeValue DvrSurfaceAttributeValue;
typedef struct DvrSurfaceAttribute DvrSurfaceAttribute;
@@ -42,10 +43,11 @@
// dvr_display_manager.h
typedef int (*DvrDisplayManagerCreatePtr)(DvrDisplayManager** client_out);
typedef void (*DvrDisplayManagerDestroyPtr)(DvrDisplayManager* client);
-typedef int (*DvrDisplayManagerSetupNamedBufferPtr)(DvrDisplayManager* client,
- const char* name,
- size_t size, uint64_t usage,
- DvrBuffer** buffer_out);
+typedef int (*DvrDisplayManagerSetupGlobalBufferPtr)(DvrDisplayManager* client,
+ DvrGlobalBufferKey key,
+ size_t size,
+ uint64_t usage,
+ DvrBuffer** buffer_out);
typedef int (*DvrDisplayManagerGetEventFdPtr)(DvrDisplayManager* client);
typedef int (*DvrDisplayManagerTranslateEpollEventMaskPtr)(
DvrDisplayManager* client, int in_events, int* out_events);
@@ -156,7 +158,8 @@
size_t meta_size_bytes);
// dvr_surface.h
-typedef int (*DvrGetNamedBufferPtr)(const char* name, DvrBuffer** out_buffer);
+typedef int (*DvrGetGlobalBufferPtr)(DvrGlobalBufferKey key,
+ DvrBuffer** out_buffer);
typedef int (*DvrSurfaceCreatePtr)(const DvrSurfaceAttribute* attributes,
size_t attribute_count,
DvrSurface** surface_out);
diff --git a/libs/vr/libdvr/include/dvr/dvr_api_entries.h b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
index 42c1178..30d0a65 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api_entries.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api_entries.h
@@ -11,7 +11,7 @@
// Display manager client
DVR_V1_API_ENTRY(DisplayManagerCreate);
DVR_V1_API_ENTRY(DisplayManagerDestroy);
-DVR_V1_API_ENTRY(DisplayManagerSetupNamedBuffer);
+DVR_V1_API_ENTRY(DisplayManagerSetupGlobalBuffer);
DVR_V1_API_ENTRY(DisplayManagerGetEventFd);
DVR_V1_API_ENTRY(DisplayManagerTranslateEpollEventMask);
DVR_V1_API_ENTRY(DisplayManagerGetSurfaceState);
@@ -86,7 +86,7 @@
DVR_V1_API_ENTRY(SurfaceGetId);
DVR_V1_API_ENTRY(SurfaceSetAttributes);
DVR_V1_API_ENTRY(SurfaceCreateWriteBufferQueue);
-DVR_V1_API_ENTRY(GetNamedBuffer);
+DVR_V1_API_ENTRY(GetGlobalBuffer);
// Pose client
DVR_V1_API_ENTRY(PoseCreate);
diff --git a/libs/vr/libdvr/include/dvr/dvr_display_manager.h b/libs/vr/libdvr/include/dvr/dvr_display_manager.h
index b8af108..f8db182 100644
--- a/libs/vr/libdvr/include/dvr/dvr_display_manager.h
+++ b/libs/vr/libdvr/include/dvr/dvr_display_manager.h
@@ -28,9 +28,9 @@
// Sets up a named buffer for shared memory data transfer between display
// clients and the display manager.
// @return 0 on success. Otherwise returns a negative error value.
-int dvrDisplayManagerSetupNamedBuffer(DvrDisplayManager* client,
- const char* name, size_t size,
- uint64_t usage, DvrBuffer** buffer_out);
+int dvrDisplayManagerSetupGlobalBuffer(DvrDisplayManager* client,
+ DvrGlobalBufferKey key, size_t size,
+ uint64_t usage, DvrBuffer** buffer_out);
// Device metrics data type enums.
enum {
diff --git a/libs/vr/libdvr/include/dvr/dvr_surface.h b/libs/vr/libdvr/include/dvr/dvr_surface.h
index 361488e..e3ab41b 100644
--- a/libs/vr/libdvr/include/dvr/dvr_surface.h
+++ b/libs/vr/libdvr/include/dvr/dvr_surface.h
@@ -6,16 +6,13 @@
#include <stdint.h>
#include <sys/cdefs.h>
+#include <dvr/dvr_api.h>
#include <dvr/dvr_buffer.h>
#include <dvr/dvr_buffer_queue.h>
#include <dvr/dvr_display_types.h>
__BEGIN_DECLS
-typedef struct DvrBuffer DvrBuffer;
-typedef struct DvrSurface DvrSurface;
-typedef struct DvrWriteBufferQueue DvrWriteBufferQueue;
-
// Attribute types. The values are one-hot encoded to support singluar types or
// masks of supported types.
enum {
@@ -82,9 +79,9 @@
size_t capacity,
DvrWriteBufferQueue** queue_out);
-// Get a named buffer from the display service.
+// Get a global buffer from the display service.
// @return 0 on success. Otherwise returns a negative error value.
-int dvrGetNamedBuffer(const char* name, DvrBuffer** out_buffer);
+int dvrGetGlobalBuffer(DvrGlobalBufferKey key, DvrBuffer** out_buffer);
__END_DECLS
diff --git a/libs/vr/libdvr/tests/dvr_named_buffer-test.cpp b/libs/vr/libdvr/tests/dvr_named_buffer-test.cpp
index e65f6d5..336f11f 100644
--- a/libs/vr/libdvr/tests/dvr_named_buffer-test.cpp
+++ b/libs/vr/libdvr/tests/dvr_named_buffer-test.cpp
@@ -29,16 +29,16 @@
};
TEST_F(DvrNamedBufferTest, TestNamedBuffersSameName) {
- const char* buffer_name = "same_name";
+ const DvrGlobalBufferKey buffer_key = 101;
DvrBuffer* buffer1 = nullptr;
int ret1 =
- dvrDisplayManagerSetupNamedBuffer(client_, buffer_name, 10, 0, &buffer1);
+ dvrDisplayManagerSetupGlobalBuffer(client_, buffer_key, 10, 0, &buffer1);
ASSERT_EQ(0, ret1);
ASSERT_NE(nullptr, buffer1);
DvrBuffer* buffer2 = nullptr;
int ret2 =
- dvrDisplayManagerSetupNamedBuffer(client_, buffer_name, 10, 0, &buffer2);
+ dvrDisplayManagerSetupGlobalBuffer(client_, buffer_key, 10, 0, &buffer2);
ASSERT_EQ(0, ret1);
ASSERT_NE(nullptr, buffer2);
@@ -71,7 +71,7 @@
dvrBufferDestroy(buffer2);
DvrBuffer* buffer3 = nullptr;
- int e3 = dvrGetNamedBuffer(buffer_name, &buffer3);
+ int e3 = dvrGetGlobalBuffer(buffer_key, &buffer3);
ASSERT_NE(nullptr, buffer3);
ASSERT_EQ(0, e3);
@@ -96,37 +96,37 @@
}
TEST_F(DvrNamedBufferTest, TestMultipleNamedBuffers) {
- const char* buffer_name1 = "test1";
- const char* buffer_name2 = "test2";
+ const DvrGlobalBufferKey buffer_key1 = 102;
+ const DvrGlobalBufferKey buffer_key2 = 103;
DvrBuffer* setup_buffer1 = nullptr;
- int ret1 = dvrDisplayManagerSetupNamedBuffer(client_, buffer_name1, 10, 0,
- &setup_buffer1);
+ int ret1 = dvrDisplayManagerSetupGlobalBuffer(client_, buffer_key1, 10, 0,
+ &setup_buffer1);
ASSERT_EQ(0, ret1);
ASSERT_NE(nullptr, setup_buffer1);
dvrBufferDestroy(setup_buffer1);
DvrBuffer* setup_buffer2 = nullptr;
- int ret2 = dvrDisplayManagerSetupNamedBuffer(client_, buffer_name2, 10, 0,
- &setup_buffer2);
+ int ret2 = dvrDisplayManagerSetupGlobalBuffer(client_, buffer_key2, 10, 0,
+ &setup_buffer2);
ASSERT_EQ(0, ret2);
ASSERT_NE(nullptr, setup_buffer2);
dvrBufferDestroy(setup_buffer2);
DvrBuffer* buffer1 = nullptr;
- int e1 = dvrGetNamedBuffer(buffer_name1, &buffer1);
+ int e1 = dvrGetGlobalBuffer(buffer_key1, &buffer1);
ASSERT_NE(nullptr, buffer1);
ASSERT_EQ(0, e1);
dvrBufferDestroy(buffer1);
DvrBuffer* buffer2 = nullptr;
- int e2 = dvrGetNamedBuffer(buffer_name2, &buffer2);
+ int e2 = dvrGetGlobalBuffer(buffer_key2, &buffer2);
ASSERT_NE(nullptr, buffer2);
ASSERT_EQ(0, e2);
dvrBufferDestroy(buffer2);
}
TEST_F(DvrNamedBufferTest, TestNamedBufferUsage) {
- const char* buffer_name = "buffer_usage";
+ const DvrGlobalBufferKey buffer_key = 100;
// Set usage to AHARDWAREBUFFER_USAGE_VIDEO_ENCODE. We use this because
// internally AHARDWAREBUFFER_USAGE_VIDEO_ENCODE is converted to
@@ -136,8 +136,8 @@
const uint64_t usage = AHARDWAREBUFFER_USAGE_VIDEO_ENCODE;
DvrBuffer* setup_buffer = nullptr;
- int e1 = dvrDisplayManagerSetupNamedBuffer(client_, buffer_name, 10, usage,
- &setup_buffer);
+ int e1 = dvrDisplayManagerSetupGlobalBuffer(client_, buffer_key, 10, usage,
+ &setup_buffer);
ASSERT_NE(nullptr, setup_buffer);
ASSERT_EQ(0, e1);