blob: f845cd896df078f4b6fb092c114a38d5109cadf4 [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
Corey Tabaka2251d822017-04-20 16:04:07 -070019class IonBuffer;
Corey Tabaka2251d822017-04-20 16:04:07 -070020
21DvrBuffer* CreateDvrBufferFromIonBuffer(
22 const std::shared_ptr<IonBuffer>& ion_buffer);
23
Corey Tabaka2251d822017-04-20 16:04:07 -070024} // namespace dvr
25} // namespace android
26
27extern "C" {
28
Corey Tabaka2251d822017-04-20 16:04:07 -070029struct DvrWriteBuffer {
Jiwen 'Steve' Cai638b7f72017-09-08 11:10:29 -070030 // The slot nubmer of the buffer, a valid slot number must be in the range of
31 // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for
32 // DvrWriteBuffer acquired from a DvrWriteBufferQueue.
33 int32_t slot = -1;
34
Jiwen 'Steve' Cai1c730242018-12-31 18:40:02 -080035 std::shared_ptr<android::dvr::ProducerBuffer> write_buffer;
Corey Tabaka2251d822017-04-20 16:04:07 -070036};
37
38struct DvrReadBuffer {
Jiwen 'Steve' Cai638b7f72017-09-08 11:10:29 -070039 // The slot nubmer of the buffer, a valid slot number must be in the range of
40 // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for
41 // DvrReadBuffer acquired from a DvrReadBufferQueue.
42 int32_t slot = -1;
43
Jiwen 'Steve' Cai1c730242018-12-31 18:40:02 -080044 std::shared_ptr<android::dvr::ConsumerBuffer> read_buffer;
Corey Tabaka2251d822017-04-20 16:04:07 -070045};
46
47struct DvrBuffer {
48 std::shared_ptr<android::dvr::IonBuffer> buffer;
49};
50
Corey Tabaka2251d822017-04-20 16:04:07 -070051} // extern "C"
52
53#endif // ANDROID_DVR_INTERNAL_H_