Files
salmanoff/stimBuffApis/lcameraBuff/yuvChannelStimulusBuffer.h
T

52 lines
1.3 KiB
C++
Raw Normal View History

#ifndef LCAMERA_BUFF_YUV_CHANNEL_STIMULUS_BUFFER_H
#define LCAMERA_BUFF_YUV_CHANNEL_STIMULUS_BUFFER_H
#include <config.h>
#include <user/deviceAttachmentSpec.h>
#include <user/stagingBuffer.h>
#include <user/stimulusBuffer.h>
#include <pixelAndColorFormatDecisions.h>
#define CL_TARGET_OPENCL_VERSION 120
#include <CL/cl.h>
#include <unistd.h>
namespace smo {
namespace stim_buff {
namespace lcamera_buff {
class YuvStimProducer;
StagingBuffer::IOEngineConstraints yuvChannelStagingInputConstraints(
size_t channelByteSize);
/**
* Channel stimbuff placeholder for Stage 2 setup-only attach. Uses mmap-backed
* StagingBuffer sized for deinterleaved Y/U/V component storage.
*/
class YuvChannelStimulusBuffer
: public StimulusBuffer
{
public:
static YuvChannelKind yuvChannelKindFromQualeIfaceApi(
const std::string& qualeIfaceApi);
YuvChannelStimulusBuffer(
StimulusProducer& parent,
const std::shared_ptr<device::DeviceAttachmentSpec>& deviceAttachmentSpec,
int histbuffMs,
YuvChannelKind channelKind,
size_t channelByteSize,
const SmoCallbacks& callbacks,
cl_mem_flags flags);
public:
YuvChannelKind channelKind;
size_t channelByteSize;
};
} // namespace lcamera_buff
} // namespace stim_buff
} // namespace smo
#endif // LCAMERA_BUFF_YUV_CHANNEL_STIMULUS_BUFFER_H