11 if constexpr (
sizeof(T) >=
sizeof(
int)) {
12 if (std::is_signed_v<T>) {
13 return static_cast<int>(std::clamp<T>(
value,
14 std::numeric_limits<int>::min(), std::numeric_limits<int>::max()));
16 return static_cast<int>(std::min<T>(
value, std::numeric_limits<int>::max()));
19 return static_cast<int>(
value);
32 case CAMERA_FRAMETYPE_NV12:
34 case CAMERA_FRAMETYPE_RGB8888:
36 case CAMERA_FRAMETYPE_GRAY8:
38 case CAMERA_FRAMETYPE_CBYCRY:
40 case CAMERA_FRAMETYPE_YCBCR420P:
42 case CAMERA_FRAMETYPE_YCBYCR:
83 switch (
buffer->frametype) {
84 case CAMERA_FRAMETYPE_NV12:
86 case CAMERA_FRAMETYPE_RGB8888:
88 case CAMERA_FRAMETYPE_GRAY8:
90 case CAMERA_FRAMETYPE_CBYCRY:
92 case CAMERA_FRAMETYPE_YCBCR420P:
94 case CAMERA_FRAMETYPE_YCBYCR:
104 unsigned char *baseAddress)
115 baseAddress +
frame.uv_offset
125 unsigned char *baseAddress)
142 unsigned char *baseAddress)
159 unsigned char *baseAddress)
176 unsigned char *baseAddress)
187 baseAddress +
frame.cb_offset,
188 baseAddress +
frame.cr_offset,
199 unsigned char *baseAddress)
216 unsigned char *baseAddress)
218 switch (
buffer->frametype) {
219 case CAMERA_FRAMETYPE_NV12:
221 case CAMERA_FRAMETYPE_RGB8888:
223 case CAMERA_FRAMETYPE_GRAY8:
225 case CAMERA_FRAMETYPE_CBYCRY:
227 case CAMERA_FRAMETYPE_YCBCR420P:
229 case CAMERA_FRAMETYPE_YCBYCR:
240 switch (
buffer->frametype) {
241 case CAMERA_FRAMETYPE_NV12:
243 case CAMERA_FRAMETYPE_RGB8888:
245 case CAMERA_FRAMETYPE_GRAY8:
247 case CAMERA_FRAMETYPE_CBYCRY:
249 case CAMERA_FRAMETYPE_YCBCR420P:
251 case CAMERA_FRAMETYPE_YCBYCR:
271 m_data = std::make_unique<unsigned char[]>(m_dataSize);
273 memcpy(m_data.get(),
buffer->framebuf, m_dataSize);
296 return m_pixelFormat;
The QAbstractVideoBuffer class is an abstraction for video data. \inmodule QtMultimedia.
QQnxCameraFrameBuffer(const camera_buffer_t *buffer, QRhi *rhi=nullptr)
QVideoFrameFormat::PixelFormat pixelFormat() const
MapData map(QVideoFrame::MapMode mode) override
Independently maps the planes of a video buffer to memory.
void unmap() override
Releases the memory mapped by the map() function.
QVideoFrame::MapMode mapMode() const override
The QVideoFrame class represents a frame of video data.
MapMode
Enumerates how a video buffer's data is mapped to system memory.
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static constexpr int toInt(T value)
static QAbstractVideoBuffer::MapData mapData(const camera_frame_nv12_t &frame, unsigned char *baseAddress)
static constexpr QSize frameSize(const T &frame)
static constexpr size_t bufferDataSize(const camera_frame_nv12_t &frame)
static constexpr QVideoFrameFormat::PixelFormat frameTypeToPixelFormat(camera_frametype_t type)