Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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(
11
RhiTextureArray &&rhiTextures, QVideoFrame sourceFrame)
12
: QVideoFrameTextures(std::move(sourceFrame)), m_rhiTextures(std::move(rhiTextures))
13
{
14
}
15
16
// out-of-line destructor to get arount potential RTTI problems
17
QVideoFrameTexturesFromRhiTextureArray::~QVideoFrameTexturesFromRhiTextureArray() =
default
;
18
19
QRhiTexture *QVideoFrameTexturesFromRhiTextureArray::texture(uint plane)
const
20
{
21
return
plane < m_rhiTextures.size() ? m_rhiTextures[plane].get() :
nullptr
;
22
}
23
24
RhiTextureArray QVideoFrameTexturesFromRhiTextureArray::takeTextureArray() &&
25
{
26
return
std::move(m_rhiTextures);
27
}
28
29
QVideoFrameTexturesFromMemory::QVideoFrameTexturesFromMemory(RhiTextureArray &&rhiTextures,
30
QVideoFrame mappedFrame)
31
: QVideoFrameTexturesFromRhiTextureArray(std::move(rhiTextures), mappedFrame),
32
m_mappedFrame(std::move(mappedFrame))
33
{
34
Q_ASSERT(!m_mappedFrame.isValid() || m_mappedFrame.isReadable());
35
}
36
37
// We keep the source frame mapped until QRhi::endFrame is invoked.
38
// QRhi::endFrame ensures that the mapped frame's memory has been loaded into the texture.
39
// See QTBUG-123174 for bug's details.
40
QVideoFrameTexturesFromMemory::~QVideoFrameTexturesFromMemory()
41
{
42
m_mappedFrame.unmap();
43
}
44
45
void
QVideoFrameTexturesFromMemory::onFrameEndInvoked()
46
{
47
// After invoking QRhi::endFrame, the texture is loaded, and we don't need to
48
// to store the source mapped frame anymore
49
m_mappedFrame.unmap();
50
m_mappedFrame = {};
51
}
52
53
QVideoFrameTexturesFromHandlesSet::QVideoFrameTexturesFromHandlesSet(
54
RhiTextureArray &&rhiTextures, QVideoFrameTexturesHandlesUPtr handles,
55
QVideoFrame sourceFrame)
56
: QVideoFrameTexturesFromRhiTextureArray(std::move(rhiTextures), std::move(sourceFrame)),
57
m_textureHandles(std::move(handles))
58
{
59
}
60
61
// out-of-line destructor to get arount potential RTTI problems
62
QVideoFrameTexturesFromHandlesSet::~QVideoFrameTexturesFromHandlesSet() =
default
;
63
64
QVideoFrameTexturesHandlesUPtr QVideoFrameTexturesFromHandlesSet::takeHandles()
65
{
66
return
std::move(m_textureHandles);
67
}
68
69
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
multimedia
video
qvideoframetexturefromsource.cpp
Generated on
for Qt by
1.18.0