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
qwindowsintegration.cpp
Go to the documentation of this file.
1
// Copyright (C) 2021 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
"qwindowsintegration_p.h"
5
6
#
include
<
decoder
/
mfaudiodecodercontrol_p
.
h
>
7
#
include
<
mediacapture
/
qwindowscamera_p
.
h
>
8
#
include
<
mediacapture
/
qwindowsimagecapture_p
.
h
>
9
#
include
<
mediacapture
/
qwindowsmediacapture_p
.
h
>
10
#
include
<
mediacapture
/
qwindowsmediaencoder_p
.
h
>
11
#
include
<
player
/
qmediaengineplayer_p
.
h
>
12
#
include
<
qwindowsformatinfo_p
.
h
>
13
14
#
include
<
QtMultimedia
/
private
/
qplatformmediaplugin_p
.
h
>
15
#
include
<
QtMultimedia
/
private
/
qplatformvideosink_p
.
h
>
16
#
include
<
QtMultimedia
/
private
/
qwindowsaudiodevices_p
.
h
>
17
#
include
<
QtCore
/
private
/
qfunctions_win_p
.
h
>
18
#
include
<
QtCore
/
private
/
qsystemerror_p
.
h
>
19
20
QT_BEGIN_NAMESPACE
21
22
using
namespace
Qt::StringLiterals;
23
24
class
QWindowsMediaPlugin
:
public
QPlatformMediaPlugin
25
{
26
Q_OBJECT
27
Q_PLUGIN_METADATA(IID QPlatformMediaPlugin_iid FILE
"windows.json"
)
28
29
public
:
30
QWindowsMediaPlugin
()
31
:
QPlatformMediaPlugin
()
32
{}
33
34
QPlatformMediaIntegration
*
create
(
const
QString
&
name
)
override
35
{
36
if
(
name
!= u"windows")
37
return
nullptr
;
38
39
qt_win_ensureComInitializedOnThisThread
();
40
HRESULT
hr
=
MFStartup
(
MF_VERSION
);
41
if
(
SUCCEEDED
(
hr
))
42
return
new
QWindowsMediaIntegration
;
43
44
qWarning
() <<
"Failed to initialize Media Foundation:"
45
<<
QSystemError
::
windowsComString
(
hr
);
46
return
nullptr
;
47
}
48
};
49
50
QWindowsMediaIntegration
::QWindowsMediaIntegration()
51
: QPlatformMediaIntegration(
"windows"_L1
)
52
{}
53
54
QWindowsMediaIntegration
::~
QWindowsMediaIntegration
()
55
{
56
MFShutdown();
57
}
58
59
QPlatformMediaFormatInfo
*
QWindowsMediaIntegration
::
createFormatInfo
()
60
{
61
return
new
QWindowsFormatInfo();
62
}
63
64
QPlatformVideoDevices
*
QWindowsMediaIntegration
::
createVideoDevices
()
65
{
66
return
new
QWindowsVideoDevices(
this
);
67
}
68
69
q23
::
expected
<
QPlatformMediaCaptureSession
*,
QString
>
QWindowsMediaIntegration
::
createCaptureSession
()
70
{
71
return
new
QWindowsMediaCaptureService
();
72
}
73
74
q23
::
expected
<
QPlatformAudioDecoder
*,
QString
>
QWindowsMediaIntegration
::
createAudioDecoder
(QAudioDecoder *decoder)
75
{
76
return
new
MFAudioDecoderControl
(decoder);
77
}
78
79
q23
::
expected
<
QPlatformMediaPlayer
*,
QString
>
QWindowsMediaIntegration
::
createPlayer
(QMediaPlayer *parent)
80
{
81
return
new
QMediaEnginePlayer
(parent);
82
}
83
84
q23
::
expected
<
QPlatformCamera
*,
QString
>
QWindowsMediaIntegration
::
createCamera
(QCamera *camera)
85
{
86
return
new
QWindowsCamera
(camera);
87
}
88
89
q23
::
expected
<
QPlatformMediaRecorder
*,
QString
>
QWindowsMediaIntegration
::
createRecorder
(QMediaRecorder *recorder)
90
{
91
return
new
QWindowsMediaEncoder
(recorder);
92
}
93
94
q23
::
expected
<
QPlatformImageCapture
*,
QString
>
QWindowsMediaIntegration
::
createImageCapture
(QImageCapture *imageCapture)
95
{
96
return
new
QWindowsImageCapture
(imageCapture);
97
}
98
99
q23
::
expected
<
QPlatformVideoSink
*,
QString
>
QWindowsMediaIntegration
::
createVideoSink
(QVideoSink *sink)
100
{
101
return
new
QPlatformVideoSink(sink);
102
}
103
104
QT_END_NAMESPACE
105
106
#
include
"qwindowsintegration.moc"
MFAudioDecoderControl
Definition
mfaudiodecodercontrol_p.h:27
QMediaEnginePlayer
Definition
qmediaengineplayer_p.h:47
QWindowsCamera
Definition
qwindowscamera_p.h:26
QWindowsImageCapture
Definition
qwindowsimagecapture_p.h:26
QWindowsMediaCaptureService
Definition
qwindowsmediacapture_p.h:29
QWindowsMediaEncoder
Definition
qwindowsmediaencoder_p.h:30
QWindowsMediaIntegration
Definition
qwindowsintegration_p.h:27
QWindowsMediaIntegration::createVideoSink
q23::expected< QPlatformVideoSink *, QString > createVideoSink(QVideoSink *sink) override
Definition
qwindowsintegration.cpp:99
QWindowsMediaIntegration::createFormatInfo
QPlatformMediaFormatInfo * createFormatInfo() override
Definition
qwindowsintegration.cpp:59
QWindowsMediaIntegration::createAudioDecoder
q23::expected< QPlatformAudioDecoder *, QString > createAudioDecoder(QAudioDecoder *decoder) override
Definition
qwindowsintegration.cpp:74
QWindowsMediaIntegration::createCamera
q23::expected< QPlatformCamera *, QString > createCamera(QCamera *camera) override
Definition
qwindowsintegration.cpp:84
QWindowsMediaIntegration::createImageCapture
q23::expected< QPlatformImageCapture *, QString > createImageCapture(QImageCapture *imageCapture) override
Definition
qwindowsintegration.cpp:94
QWindowsMediaIntegration::createVideoDevices
QPlatformVideoDevices * createVideoDevices() override
Definition
qwindowsintegration.cpp:64
QWindowsMediaIntegration::~QWindowsMediaIntegration
~QWindowsMediaIntegration()
Definition
qwindowsintegration.cpp:54
QWindowsMediaIntegration::createRecorder
q23::expected< QPlatformMediaRecorder *, QString > createRecorder(QMediaRecorder *recorder) override
Definition
qwindowsintegration.cpp:89
QWindowsMediaIntegration::createPlayer
q23::expected< QPlatformMediaPlayer *, QString > createPlayer(QMediaPlayer *parent) override
Definition
qwindowsintegration.cpp:79
QWindowsMediaIntegration::createCaptureSession
q23::expected< QPlatformMediaCaptureSession *, QString > createCaptureSession() override
Definition
qwindowsintegration.cpp:69
QWindowsMediaPlugin
Definition
qwindowsintegration.cpp:25
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
plugins
multimedia
windows
qwindowsintegration.cpp
Generated on
for Qt by
1.18.0