Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qimagevideobuffer.cpp
Go to the documentation of this file.
1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5#include "qvideoframeformat.h"
6
8
9namespace {
10
39
41{
42 if (image.format() == QImage::Format_Invalid)
43 return image;
44
45 const auto frameFormat = QVideoFrameFormat::pixelFormatFromImageFormat(image.format());
46 if (frameFormat != QVideoFrameFormat::Format_Invalid)
47 return image;
48
49 return image.convertToFormat(fixImageFormat(image.format()));
50}
51
52} // namespace
53
58
60{
61 return m_mapMode;
62}
63
65{
67 if (m_mapMode == QVideoFrame::NotMapped && !m_image.isNull()
69 m_mapMode = mode;
70
71 mapData.nPlanes = 1;
72 mapData.bytesPerLine[0] = m_image.bytesPerLine();
73 mapData.data[0] = m_image.bits();
74 mapData.size[0] = m_image.sizeInBytes();
75 }
76
77 return mapData;
78}
79
81{
82 m_mapMode = QVideoFrame::NotMapped;
83}
84
86{
87 return m_image;
88}
89
The QAbstractVideoBuffer class is an abstraction for video data. \inmodule QtMultimedia.
QImageVideoBuffer(QImage image)
void unmap() override
Releases the memory mapped by the map() function.
MapData map(QVideoFrame::MapMode mode) override
Independently maps the planes of a video buffer to memory.
QVideoFrame::MapMode mapMode() const override
QImage underlyingImage() const
\inmodule QtGui
Definition qimage.h:37
qsizetype bytesPerLine() const
Returns the number of bytes per image scanline.
Definition qimage.cpp:1560
qsizetype sizeInBytes() const
Definition qimage.cpp:1548
uchar * bits()
Returns a pointer to the first pixel data.
Definition qimage.cpp:1698
bool isNull() const
Returns true if it is a null image, otherwise returns false.
Definition qimage.cpp:1222
Format
The following image formats are available in Qt.
Definition qimage.h:41
@ Format_Alpha8
Definition qimage.h:65
@ Format_RGBA8888
Definition qimage.h:59
@ Format_RGBA16FPx4
Definition qimage.h:73
@ Format_RGBA32FPx4_Premultiplied
Definition qimage.h:77
@ Format_RGB32
Definition qimage.h:46
@ Format_Invalid
Definition qimage.h:42
@ Format_RGBA64_Premultiplied
Definition qimage.h:69
@ Format_ARGB6666_Premultiplied
Definition qimage.h:52
@ Format_ARGB8555_Premultiplied
Definition qimage.h:54
@ Format_RGBA8888_Premultiplied
Definition qimage.h:60
@ Format_ARGB8565_Premultiplied
Definition qimage.h:50
@ Format_RGBA64
Definition qimage.h:68
@ Format_RGBA32FPx4
Definition qimage.h:76
@ Format_RGBA16FPx4_Premultiplied
Definition qimage.h:74
@ Format_A2BGR30_Premultiplied
Definition qimage.h:62
@ Format_ARGB32_Premultiplied
Definition qimage.h:48
@ Format_A2RGB30_Premultiplied
Definition qimage.h:64
@ Format_ARGB4444_Premultiplied
Definition qimage.h:57
@ Format_ARGB32
Definition qimage.h:47
static PixelFormat pixelFormatFromImageFormat(QImage::Format format)
Returns a video pixel format equivalent to an image format.
The QVideoFrame class represents a frame of video data.
Definition qvideoframe.h:27
MapMode
Enumerates how a video buffer's data is mapped to system memory.
Definition qvideoframe.h:37
Combined button and popup list for selecting options.
QImage fixImage(QImage image)
QImage::Format fixImageFormat(QImage::Format format)
Definition image.cpp:4
GLenum mode
GLint GLsizei GLsizei GLenum format
static QAbstractVideoBuffer::MapData mapData(const camera_frame_nv12_t &frame, unsigned char *baseAddress)