blob: de8bb96aec2e96368d8666e72a462733f74eef11 [file] [log] [blame]
Corey Tabaka2251d822017-04-20 16:04:07 -07001#ifndef ANDROID_DVR_INTERNAL_H_
2#define ANDROID_DVR_INTERNAL_H_
3
4#include <sys/cdefs.h>
5
6#include <memory>
7
8extern "C" {
9
10typedef struct DvrBuffer DvrBuffer;
11typedef struct DvrReadBuffer DvrReadBuffer;
12typedef struct DvrWriteBuffer DvrWriteBuffer;
Corey Tabaka2251d822017-04-20 16:04:07 -070013
14} // extern "C"
15
16namespace android {
17namespace dvr {
18
19class BufferProducer;
20class BufferConsumer;
Corey Tabaka2251d822017-04-20 16:04:07 -070021class IonBuffer;
Corey Tabaka2251d822017-04-20 16:04:07 -070022
23DvrBuffer* CreateDvrBufferFromIonBuffer(
24 const std::shared_ptr<IonBuffer>& ion_buffer);
25
26DvrReadBuffer* CreateDvrReadBufferFromBufferConsumer(
27 const std::shared_ptr<BufferConsumer>& buffer_consumer);
28DvrWriteBuffer* CreateDvrWriteBufferFromBufferProducer(
29 const std::shared_ptr<BufferProducer>& buffer_producer);
30
Corey Tabaka2251d822017-04-20 16:04:07 -070031} // namespace dvr
32} // namespace android
33
34extern "C" {
35
Corey Tabaka2251d822017-04-20 16:04:07 -070036struct DvrWriteBuffer {
Jiwen 'Steve' Cai638b7f72017-09-08 11:10:29 -070037 // The slot nubmer of the buffer, a valid slot number must be in the range of
38 // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for
39 // DvrWriteBuffer acquired from a DvrWriteBufferQueue.
40 int32_t slot = -1;
41
Corey Tabaka2251d822017-04-20 16:04:07 -070042 std::shared_ptr<android::dvr::BufferProducer> write_buffer;
43};
44
45struct DvrReadBuffer {
Jiwen 'Steve' Cai638b7f72017-09-08 11:10:29 -070046 // The slot nubmer of the buffer, a valid slot number must be in the range of
47 // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for
48 // DvrReadBuffer acquired from a DvrReadBufferQueue.
49 int32_t slot = -1;
50
Corey Tabaka2251d822017-04-20 16:04:07 -070051 std::shared_ptr<android::dvr::BufferConsumer> read_buffer;
52};
53
54struct DvrBuffer {
55 std::shared_ptr<android::dvr::IonBuffer> buffer;
56};
57
Corey Tabaka2251d822017-04-20 16:04:07 -070058} // extern "C"
59
60#endif // ANDROID_DVR_INTERNAL_H_