Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ab06328 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[vr] Add DVR API to get native handle for buffers" into oc-dev

parents 08260b88 28b58bfd
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -53,14 +53,18 @@ DVR_EXPORT int dvrGetApi(void* api, size_t struct_size, int version) {
    dvr_api->write_buffer_post = dvrWriteBufferPost;
    dvr_api->write_buffer_post = dvrWriteBufferPost;
    dvr_api->write_buffer_gain = dvrWriteBufferGain;
    dvr_api->write_buffer_gain = dvrWriteBufferGain;
    dvr_api->write_buffer_gain_async = dvrWriteBufferGainAsync;
    dvr_api->write_buffer_gain_async = dvrWriteBufferGainAsync;
    dvr_api->write_buffer_get_native_handle = dvrWriteBufferGetNativeHandle;


    dvr_api->read_buffer_destroy = dvrReadBufferDestroy;
    dvr_api->read_buffer_destroy = dvrReadBufferDestroy;
    dvr_api->read_buffer_get_ahardwarebuffer = dvrReadBufferGetAHardwareBuffer;
    dvr_api->read_buffer_get_ahardwarebuffer = dvrReadBufferGetAHardwareBuffer;
    dvr_api->read_buffer_acquire = dvrReadBufferAcquire;
    dvr_api->read_buffer_acquire = dvrReadBufferAcquire;
    dvr_api->read_buffer_release = dvrReadBufferRelease;
    dvr_api->read_buffer_release = dvrReadBufferRelease;
    dvr_api->read_buffer_release_async = dvrReadBufferReleaseAsync;
    dvr_api->read_buffer_release_async = dvrReadBufferReleaseAsync;
    dvr_api->read_buffer_get_native_handle = dvrReadBufferGetNativeHandle;

    dvr_api->buffer_destroy = dvrBufferDestroy;
    dvr_api->buffer_destroy = dvrBufferDestroy;
    dvr_api->buffer_get_ahardwarebuffer = dvrBufferGetAHardwareBuffer;
    dvr_api->buffer_get_ahardwarebuffer = dvrBufferGetAHardwareBuffer;
    dvr_api->buffer_get_native_handle = dvrBufferGetNativeHandle;


    // dvr_buffer_queue.h
    // dvr_buffer_queue.h
    dvr_api->write_buffer_queue_destroy = dvrWriteBufferQueueDestroy;
    dvr_api->write_buffer_queue_destroy = dvrWriteBufferQueueDestroy;
+14 −0
Original line number Original line Diff line number Diff line
@@ -136,4 +136,18 @@ int dvrBufferGetAHardwareBuffer(DvrBuffer* buffer,
  return 0;
  return 0;
}
}


const struct native_handle* dvrWriteBufferGetNativeHandle(
    DvrWriteBuffer* write_buffer) {
  return write_buffer->write_buffer->native_handle();
}

const struct native_handle* dvrReadBufferGetNativeHandle(
    DvrReadBuffer* read_buffer) {
  return read_buffer->read_buffer->native_handle();
}

const struct native_handle* dvrBufferGetNativeHandle(DvrBuffer* buffer) {
  return buffer->buffer->handle();
}

}  // extern "C"
}  // extern "C"
+14 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,8 @@ typedef struct DvrReadBufferQueue DvrReadBufferQueue;


typedef struct DvrSurface DvrSurface;
typedef struct DvrSurface DvrSurface;


struct native_handle;

// display_manager_client.h
// display_manager_client.h
typedef int (*DvrDisplayManagerClientGetSurfaceListPtr)(
typedef int (*DvrDisplayManagerClientGetSurfaceListPtr)(
    DvrDisplayManagerClient* client,
    DvrDisplayManagerClient* client,
@@ -70,6 +72,8 @@ typedef int (*DvrWriteBufferPostPtr)(DvrWriteBuffer* client, int ready_fence_fd,
typedef int (*DvrWriteBufferGainPtr)(DvrWriteBuffer* client,
typedef int (*DvrWriteBufferGainPtr)(DvrWriteBuffer* client,
                                     int* release_fence_fd);
                                     int* release_fence_fd);
typedef int (*DvrWriteBufferGainAsyncPtr)(DvrWriteBuffer* client);
typedef int (*DvrWriteBufferGainAsyncPtr)(DvrWriteBuffer* client);
typedef const struct native_handle* (*DvrWriteBufferGetNativeHandle)(
    DvrWriteBuffer* write_buffer);


typedef void (*DvrReadBufferDestroyPtr)(DvrReadBuffer* client);
typedef void (*DvrReadBufferDestroyPtr)(DvrReadBuffer* client);
typedef int (*DvrReadBufferGetAHardwareBufferPtr)(
typedef int (*DvrReadBufferGetAHardwareBufferPtr)(
@@ -80,9 +84,14 @@ typedef int (*DvrReadBufferAcquirePtr)(DvrReadBuffer* client,
typedef int (*DvrReadBufferReleasePtr)(DvrReadBuffer* client,
typedef int (*DvrReadBufferReleasePtr)(DvrReadBuffer* client,
                                       int release_fence_fd);
                                       int release_fence_fd);
typedef int (*DvrReadBufferReleaseAsyncPtr)(DvrReadBuffer* client);
typedef int (*DvrReadBufferReleaseAsyncPtr)(DvrReadBuffer* client);
typedef const struct native_handle* (*DvrReadBufferGetNativeHandle)(
    DvrReadBuffer* read_buffer);

typedef void (*DvrBufferDestroy)(DvrBuffer* buffer);
typedef void (*DvrBufferDestroy)(DvrBuffer* buffer);
typedef int (*DvrBufferGetAHardwareBuffer)(DvrBuffer* buffer,
typedef int (*DvrBufferGetAHardwareBuffer)(DvrBuffer* buffer,
                                           AHardwareBuffer** hardware_buffer);
                                           AHardwareBuffer** hardware_buffer);
typedef const struct native_handle* (*DvrBufferGetNativeHandle)(
    DvrBuffer* buffer);


// dvr_buffer_queue.h
// dvr_buffer_queue.h
typedef void (*DvrWriteBufferQueueDestroyPtr)(DvrWriteBufferQueue* write_queue);
typedef void (*DvrWriteBufferQueueDestroyPtr)(DvrWriteBufferQueue* write_queue);
@@ -238,6 +247,7 @@ struct DvrApi_v1 {
  DvrWriteBufferPostPtr write_buffer_post;
  DvrWriteBufferPostPtr write_buffer_post;
  DvrWriteBufferGainPtr write_buffer_gain;
  DvrWriteBufferGainPtr write_buffer_gain;
  DvrWriteBufferGainAsyncPtr write_buffer_gain_async;
  DvrWriteBufferGainAsyncPtr write_buffer_gain_async;
  DvrWriteBufferGetNativeHandle write_buffer_get_native_handle;


  // Read buffer
  // Read buffer
  DvrReadBufferDestroyPtr read_buffer_destroy;
  DvrReadBufferDestroyPtr read_buffer_destroy;
@@ -245,8 +255,12 @@ struct DvrApi_v1 {
  DvrReadBufferAcquirePtr read_buffer_acquire;
  DvrReadBufferAcquirePtr read_buffer_acquire;
  DvrReadBufferReleasePtr read_buffer_release;
  DvrReadBufferReleasePtr read_buffer_release;
  DvrReadBufferReleaseAsyncPtr read_buffer_release_async;
  DvrReadBufferReleaseAsyncPtr read_buffer_release_async;
  DvrReadBufferGetNativeHandle read_buffer_get_native_handle;

  // Buffer
  DvrBufferDestroy buffer_destroy;
  DvrBufferDestroy buffer_destroy;
  DvrBufferGetAHardwareBuffer buffer_get_ahardwarebuffer;
  DvrBufferGetAHardwareBuffer buffer_get_ahardwarebuffer;
  DvrBufferGetNativeHandle buffer_get_native_handle;


  // Write buffer queue
  // Write buffer queue
  DvrWriteBufferQueueDestroyPtr write_buffer_queue_destroy;
  DvrWriteBufferQueueDestroyPtr write_buffer_queue_destroy;
+6 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@ typedef struct DvrWriteBuffer DvrWriteBuffer;
typedef struct DvrReadBuffer DvrReadBuffer;
typedef struct DvrReadBuffer DvrReadBuffer;
typedef struct DvrBuffer DvrBuffer;
typedef struct DvrBuffer DvrBuffer;
typedef struct AHardwareBuffer AHardwareBuffer;
typedef struct AHardwareBuffer AHardwareBuffer;
struct native_handle;


// Write buffer
// Write buffer
void dvrWriteBufferDestroy(DvrWriteBuffer* write_buffer);
void dvrWriteBufferDestroy(DvrWriteBuffer* write_buffer);
@@ -23,6 +24,8 @@ int dvrWriteBufferPost(DvrWriteBuffer* write_buffer, int ready_fence_fd,
                       const void* meta, size_t meta_size_bytes);
                       const void* meta, size_t meta_size_bytes);
int dvrWriteBufferGain(DvrWriteBuffer* write_buffer, int* release_fence_fd);
int dvrWriteBufferGain(DvrWriteBuffer* write_buffer, int* release_fence_fd);
int dvrWriteBufferGainAsync(DvrWriteBuffer* write_buffer);
int dvrWriteBufferGainAsync(DvrWriteBuffer* write_buffer);
const struct native_handle* dvrWriteBufferGetNativeHandle(
    DvrWriteBuffer* write_buffer);


// Read buffer
// Read buffer
void dvrReadBufferDestroy(DvrReadBuffer* read_buffer);
void dvrReadBufferDestroy(DvrReadBuffer* read_buffer);
@@ -33,11 +36,14 @@ int dvrReadBufferAcquire(DvrReadBuffer* read_buffer, int* ready_fence_fd,
                         void* meta, size_t meta_size_bytes);
                         void* meta, size_t meta_size_bytes);
int dvrReadBufferRelease(DvrReadBuffer* read_buffer, int release_fence_fd);
int dvrReadBufferRelease(DvrReadBuffer* read_buffer, int release_fence_fd);
int dvrReadBufferReleaseAsync(DvrReadBuffer* read_buffer);
int dvrReadBufferReleaseAsync(DvrReadBuffer* read_buffer);
const struct native_handle* dvrReadBufferGetNativeHandle(
    DvrReadBuffer* read_buffer);


// Buffer
// Buffer
void dvrBufferDestroy(DvrBuffer* buffer);
void dvrBufferDestroy(DvrBuffer* buffer);
int dvrBufferGetAHardwareBuffer(DvrBuffer* buffer,
int dvrBufferGetAHardwareBuffer(DvrBuffer* buffer,
                                AHardwareBuffer** hardware_buffer);
                                AHardwareBuffer** hardware_buffer);
const struct native_handle* dvrBufferGetNativeHandle(DvrBuffer* buffer);


#ifdef __cplusplus
#ifdef __cplusplus
}  // extern "C"
}  // extern "C"