#ifndef LCAMERA_BUFF_YUV_CHANNEL_STIMULUS_BUFFER_H #define LCAMERA_BUFF_YUV_CHANNEL_STIMULUS_BUFFER_H #include #include #include #include #include #define CL_TARGET_OPENCL_VERSION 120 #include #include 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& 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