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
6#include "mediaplayer/qwasmmediaplayer_p.h"
7#include "mediaplayer/qwasmvideosink_p.h"
9#include "common/qwasmaudiooutput_p.h"
10#include "mediacapture/qwasmmediacapturesession_p.h"
11#include "mediacapture/qwasmmediarecorder_p.h"
12#include "mediacapture/qwasmcamera_p.h"
13#include "mediacapture/qwasmimagecapture_p.h"
14#include "mediacapture/qwasmscreencapture_p.h"
15#include "mediacapture/qwasmwindowcapture_p.h"
16#include "mediacapture/qwasmcapturablewindows_p.h"
17
18#include <QtMultimedia/qcamera.h>
19#include <QtMultimedia/qcameradevice.h>
20#include <QtMultimedia/private/qplatformaudiodevices_p.h>
21#include <QtMultimedia/private/qplatformmediaformatinfo_p.h>
22#include <QtMultimedia/private/qplatformmediaplugin_p.h>
23#include <QtMultimedia/private/qplatformvideodevices_p.h>
24#include <QtCore/qloggingcategory.h>
25
27
28
30{
31 Q_OBJECT
32 Q_PLUGIN_METADATA(IID QPlatformMediaPlugin_iid FILE "wasm.json")
33
34public:
38
40 {
41 if (name == u"wasm")
42 return new QWasmMediaIntegration;
43 return nullptr;
44 }
45};
46
49
51{
52 return new QWasmMediaPlayer(player);
53}
54
55q23::expected<QPlatformVideoSink *, QString> QWasmMediaIntegration::createVideoSink(QVideoSink *sink)
56{
57 return new QWasmVideoSink(sink);
58}
59
61{
62 return new QWasmAudioInput(audioInput);
63}
64
66{
67 return new QWasmAudioOutput(q);
68}
69
71{
72 // TODO: create custom implementation
73 return new QPlatformMediaFormatInfo;
74}
75
77{
78 return new QWasmCameraDevices(this);
79}
80
85
87{
88 return new QWasmMediaRecorder(recorder);
89}
90
92{
93 return new QWasmCamera(camera);
94}
95
97QWasmMediaIntegration::createImageCapture(QImageCapture *imageCapture)
98{
99 return new QWasmImageCapture(imageCapture);
100}
101
103{
104 return videoDevices()->videoInputs();
105}
106
108{
109 return new QWasmScreenCapture(screenCapture);
110}
111
113{
114 return new QWasmWindowCapture(windowCapture);
115}
116
118{
119 return new QWasmCapturableWindows();
120}
121
122QT_END_NAMESPACE
123
124#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)
Combined button and popup list for selecting options.