12251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka#ifndef ANDROID_DVR_INTERNAL_H_ 22251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka#define ANDROID_DVR_INTERNAL_H_ 32251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 42251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka#include <sys/cdefs.h> 52251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 62251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka#include <memory> 72251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 82251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakaextern "C" { 92251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 102251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakatypedef struct DvrBuffer DvrBuffer; 112251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakatypedef struct DvrReadBuffer DvrReadBuffer; 122251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakatypedef struct DvrWriteBuffer DvrWriteBuffer; 132251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 142251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka} // extern "C" 152251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 162251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakanamespace android { 172251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakanamespace dvr { 182251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 192251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakaclass BufferProducer; 202251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakaclass BufferConsumer; 212251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakaclass IonBuffer; 222251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 232251d822dac2a96aad4184a6fdc2690f0a58af7cCorey TabakaDvrBuffer* CreateDvrBufferFromIonBuffer( 242251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka const std::shared_ptr<IonBuffer>& ion_buffer); 252251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 262251d822dac2a96aad4184a6fdc2690f0a58af7cCorey TabakaDvrReadBuffer* CreateDvrReadBufferFromBufferConsumer( 272251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka const std::shared_ptr<BufferConsumer>& buffer_consumer); 282251d822dac2a96aad4184a6fdc2690f0a58af7cCorey TabakaDvrWriteBuffer* CreateDvrWriteBufferFromBufferProducer( 292251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka const std::shared_ptr<BufferProducer>& buffer_producer); 302251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 312251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka} // namespace dvr 322251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka} // namespace android 332251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 342251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakaextern "C" { 352251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 362251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakastruct DvrWriteBuffer { 37638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // The slot nubmer of the buffer, a valid slot number must be in the range of 38638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for 39638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // DvrWriteBuffer acquired from a DvrWriteBufferQueue. 40638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai int32_t slot = -1; 41638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai 422251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka std::shared_ptr<android::dvr::BufferProducer> write_buffer; 432251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka}; 442251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 452251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakastruct DvrReadBuffer { 46638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // The slot nubmer of the buffer, a valid slot number must be in the range of 47638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // [0, android::BufferQueueDefs::NUM_BUFFER_SLOTS). This is only valid for 48638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai // DvrReadBuffer acquired from a DvrReadBufferQueue. 49638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai int32_t slot = -1; 50638b7f747df50374d1e91c2496da41f293394e19Jiwen 'Steve' Cai 512251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka std::shared_ptr<android::dvr::BufferConsumer> read_buffer; 522251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka}; 532251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 542251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabakastruct DvrBuffer { 552251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka std::shared_ptr<android::dvr::IonBuffer> buffer; 562251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka}; 572251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 582251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka} // extern "C" 592251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka 602251d822dac2a96aad4184a6fdc2690f0a58af7cCorey Tabaka#endif // ANDROID_DVR_INTERNAL_H_ 61