Files
hayodea e7b7a311f7 Add lcameraBuff Stage 2 plugin with YUV attach and unit tests.
Introduce params parsing, pixel/format decisions, capture layout, shared
YuvStimProducer per camera, and channel stimulus buffers with attach flow.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-14 11:03:19 -04:00

52 lines
1.3 KiB
C++

#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