Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qvideoframetexturefromsource.cpp
Go to the documentation of this file.
1
// Copyright (C) 2024 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
4
#
include
"qvideoframetexturefromsource_p.h"
5
6
QT_BEGIN_NAMESPACE
7
8
using
namespace
QVideoTextureHelper;
9
10
QVideoFrameTexturesFromRhiTextureArray::QVideoFrameTexturesFromRhiTextureArray(RhiTextureArray &&rhiTextures)
11
: m_rhiTextures(std::move(rhiTextures))
12
{
13
}
14
15
// out-of-line destructor to get arount potential RTTI problems
16
QVideoFrameTexturesFromRhiTextureArray::~QVideoFrameTexturesFromRhiTextureArray() =
default
;
17
18
QRhiTexture *QVideoFrameTexturesFromRhiTextureArray::texture(uint plane)
const
19
{
20
return
plane < m_rhiTextures.size() ? m_rhiTextures[plane].get() :
nullptr
;
21
}
22
23
void
QVideoFrameTexturesFromMemory::setMappedFrame(QVideoFrame mappedFrame) {
24
Q_ASSERT(!mappedFrame.isValid() || mappedFrame.isReadable());
25
m_mappedFrame.unmap();
26
m_mappedFrame = std::move(mappedFrame);
27
}
28
29
// We keep the source frame mapped until QRhi::endFrame is invoked.
30
// QRhi::endFrame ensures that the mapped frame's memory has been loaded into the texture.
31
// See QTBUG-123174 for bug's details.
32
QVideoFrameTexturesFromMemory::~QVideoFrameTexturesFromMemory()
33
{
34
m_mappedFrame.unmap();
35
}
36
37
void
QVideoFrameTexturesFromMemory::onFrameEndInvoked()
38
{
39
// After invoking QRhi::endFrame, the texture is loaded, and we don't need to
40
// to store the source mapped frame anymore
41
setMappedFrame({});
42
setSourceFrame({});
43
}
44
45
QVideoFrameTexturesFromHandlesSet::QVideoFrameTexturesFromHandlesSet(
46
RhiTextureArray &&rhiTextures, QVideoFrameTexturesHandlesUPtr handles)
47
: QVideoFrameTexturesFromRhiTextureArray(std::move(rhiTextures)),
48
m_textureHandles(std::move(handles))
49
{
50
}
51
52
// out-of-line destructor to get arount potential RTTI problems
53
QVideoFrameTexturesFromHandlesSet::~QVideoFrameTexturesFromHandlesSet() =
default
;
54
55
QT_END_NAMESPACE
QPlatformGraphicsBufferHelper
\inmodule QtGui
qtmultimedia
src
multimedia
video
qvideoframetexturefromsource.cpp
Generated on
for Qt by
1.14.0