|  | #ifndef ANDROID_DVR_INTERNAL_H_ | 
|  | #define ANDROID_DVR_INTERNAL_H_ | 
|  |  | 
|  | #include <sys/cdefs.h> | 
|  |  | 
|  | #include <memory> | 
|  |  | 
|  | extern "C" { | 
|  |  | 
|  | typedef struct DvrBuffer DvrBuffer; | 
|  | typedef struct DvrReadBuffer DvrReadBuffer; | 
|  | typedef struct DvrWriteBuffer DvrWriteBuffer; | 
|  |  | 
|  | }  // extern "C" | 
|  |  | 
|  | namespace android { | 
|  | namespace dvr { | 
|  |  | 
|  | class IonBuffer; | 
|  |  | 
|  | DvrBuffer* CreateDvrBufferFromIonBuffer( | 
|  | const std::shared_ptr<IonBuffer>& ion_buffer); | 
|  |  | 
|  | }  // namespace dvr | 
|  | }  // namespace android | 
|  |  | 
|  | extern "C" { | 
|  |  | 
|  | struct DvrWriteBuffer { | 
|  | // The slot nubmer of the buffer, a valid slot number must be in the range of | 
|  | // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for | 
|  | // DvrWriteBuffer acquired from a DvrWriteBufferQueue. | 
|  | int32_t slot = -1; | 
|  |  | 
|  | std::shared_ptr<android::dvr::ProducerBuffer> write_buffer; | 
|  | }; | 
|  |  | 
|  | struct DvrReadBuffer { | 
|  | // The slot nubmer of the buffer, a valid slot number must be in the range of | 
|  | // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for | 
|  | // DvrReadBuffer acquired from a DvrReadBufferQueue. | 
|  | int32_t slot = -1; | 
|  |  | 
|  | std::shared_ptr<android::dvr::ConsumerBuffer> read_buffer; | 
|  | }; | 
|  |  | 
|  | struct DvrBuffer { | 
|  | std::shared_ptr<android::dvr::IonBuffer> buffer; | 
|  | }; | 
|  |  | 
|  | }  // extern "C" | 
|  |  | 
|  | #endif  // ANDROID_DVR_INTERNAL_H_ |