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
qmediaenginevideobuffer.cpp
Go to the documentation of this file.
1
// Copyright (C) 2026 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
"qmediaenginevideobuffer_p.h"
5
6
#
include
<
QtMultimedia
/
private
/
qvideotexturehelper_p
.
h
>
7
#
include
<
QtMultimedia
/
qvideoframeformat
.
h
>
8
9
QT_BEGIN_NAMESPACE
10
11
QMediaEngineVideoBuffer::QMediaEngineVideoBuffer(
12
ComPtr<ID3D11Texture2D> texture, ComPtr<ID3D11Device> engineDevice, QSize frameSize,
13
std::shared_ptr<QtMultimediaPrivate::QWindowsD3D11RhiTextureImporter> importer)
14
: m_texture(std::move(texture)),
15
m_engineDevice(std::move(engineDevice)),
16
m_frameSize(frameSize),
17
m_importer(std::move(importer))
18
{
19
}
20
21
QMediaEngineVideoBuffer::~QMediaEngineVideoBuffer() =
default
;
22
23
QVideoFrameTexturesUPtr
24
QMediaEngineVideoBuffer::mapTextures(QRhi &rhi, QVideoFrameTexturesUPtr &
/*oldTextures*/
)
25
{
26
if
(!m_importer)
27
return
nullptr
;
28
29
ComPtr<ID3D11DeviceContext> engineCtx;
30
m_engineDevice->GetImmediateContext(&engineCtx);
31
32
QVideoFrameTexturesHandlesUPtr handles = m_importer->importTexture(
33
rhi, m_engineDevice.Get(), engineCtx.Get(), m_texture, m_frameSize,
34
QVideoFrameFormat::Format_BGRA8888);
35
if
(!handles)
36
return
nullptr
;
37
38
return
QVideoTextureHelper::createTexturesFromHandles(
39
std::move(handles), rhi, QVideoFrameFormat::Format_BGRA8888, m_frameSize);
40
}
41
42
QAbstractVideoBuffer::MapData QMediaEngineVideoBuffer::map(QVideoFrame::MapMode mode)
43
{
44
if
(mode != QVideoFrame::ReadOnly)
45
return
{};
46
47
return
m_readback.map(m_engineDevice, m_texture, m_frameSize);
48
}
49
50
void
QMediaEngineVideoBuffer::unmap()
51
{
52
m_readback.unmap();
53
}
54
55
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
plugins
multimedia
windows
player
qmediaenginevideobuffer.cpp
Generated on
for Qt by
1.18.0