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
qwasmmediaintegration.cpp
Go to the documentation of this file.
1// Copyright (C) 2022 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 <QLoggingCategory>
6
7#include <QCamera>
8#include <QCameraDevice>
9
10#include <private/qplatformmediaformatinfo_p.h>
11#include <private/qplatformmediaplugin_p.h>
12#include <private/qplatformaudiodevices_p.h>
13#include <private/qplatformvideodevices_p.h>
14
15#include "mediaplayer/qwasmmediaplayer_p.h"
16#include "mediaplayer/qwasmvideosink_p.h"
18#include "common/qwasmaudiooutput_p.h"
19
20#include "mediacapture/qwasmmediacapturesession_p.h"
21#include "mediacapture/qwasmmediarecorder_p.h"
22#include "mediacapture/qwasmcamera_p.h"
23#include "mediacapture/qwasmmediacapturesession_p.h"
24#include "mediacapture/qwasmimagecapture_p.h"
25#include "mediacapture/qwasmscreencapture_p.h"
26#include "mediacapture/qwasmwindowcapture_p.h"
27#include "mediacapture/qwasmcapturablewindows_p.h"
28
30
31
33{
34 Q_OBJECT
35 Q_PLUGIN_METADATA(IID QPlatformMediaPlugin_iid FILE "wasm.json")
36
37public:
41
43 {
44 if (name == u"wasm")
45 return new QWasmMediaIntegration;
46 return nullptr;
47 }
48};
49
52
54{
55 return new QWasmMediaPlayer(player);
56}
57
58q23::expected<QPlatformVideoSink *, QString> QWasmMediaIntegration::createVideoSink(QVideoSink *sink)
59{
60 return new QWasmVideoSink(sink);
61}
62
64{
65 return new QWasmAudioInput(audioInput);
66}
67
69{
70 return new QWasmAudioOutput(q);
71}
72
74{
75 // TODO: create custom implementation
76 return new QPlatformMediaFormatInfo;
77}
78
80{
81 return new QWasmCameraDevices(this);
82}
83
88
90{
91 return new QWasmMediaRecorder(recorder);
92}
93
95{
96 return new QWasmCamera(camera);
97}
98
100QWasmMediaIntegration::createImageCapture(QImageCapture *imageCapture)
101{
102 return new QWasmImageCapture(imageCapture);
103}
104
106{
107 return videoDevices()->videoInputs();
108}
109
111{
112 return new QWasmScreenCapture(screenCapture);
113}
114
116{
117 return new QWasmWindowCapture(windowCapture);
118}
119
121{
122 return new QWasmCapturableWindows();
123}
124
125QT_END_NAMESPACE
126
127#include "qwasmmediaintegration.moc"
QList< QCameraDevice > videoInputs()
QPlatformVideoDevices * createVideoDevices() override
q23::expected< QPlatformCamera *, QString > createCamera(QCamera *camera) override
q23::expected< QPlatformMediaPlayer *, QString > createPlayer(QMediaPlayer *player) override
QPlatformMediaFormatInfo * createFormatInfo() override
QPlatformCapturableWindows * createCapturableWindows() override
QPlatformSurfaceCapture * createWindowCapture(QWindowCapture *windowCapture) override
q23::expected< QPlatformAudioInput *, QString > createAudioInput(QAudioInput *audioInput) override
q23::expected< QPlatformAudioOutput *, QString > createAudioOutput(QAudioOutput *q) override
QPlatformSurfaceCapture * createScreenCapture(QScreenCapture *screenCapture) override
q23::expected< QPlatformImageCapture *, QString > createImageCapture(QImageCapture *imageCapture) override
q23::expected< QPlatformMediaCaptureSession *, QString > createCaptureSession() override
q23::expected< QPlatformMediaRecorder *, QString > createRecorder(QMediaRecorder *recorder) override
QWasmMediaRecorder(QMediaRecorder *parent)