e7b7a311f7
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>
52 lines
1.3 KiB
C++
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
|