blob: 28b6c28e9f70f715b81f0a964ebcf14706e3bdd0 [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 {
37 std::shared_ptr<android::dvr::BufferProducer> write_buffer;
38};
39
40struct DvrReadBuffer {
41 std::shared_ptr<android::dvr::BufferConsumer> read_buffer;
42};
43
44struct DvrBuffer {
45 std::shared_ptr<android::dvr::IonBuffer> buffer;
46};
47
Corey Tabaka2251d822017-04-20 16:04:07 -070048} // extern "C"
49
50#endif // ANDROID_DVR_INTERNAL_H_