// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QGSTREAMERINTEGRATION_H #define QGSTREAMERINTEGRATION_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include QT_BEGIN_NAMESPACE class QFFmpegMediaFormatInfo; class QFFmpegMediaIntegration : public QPlatformMediaIntegration { public: QFFmpegMediaIntegration(); static QFFmpegMediaIntegration *instance() { return static_cast(QPlatformMediaIntegration::instance()); } QMaybe createAudioDecoder(QAudioDecoder *decoder) override; QMaybe createAudioResampler(const QAudioFormat &inputFormat, const QAudioFormat &outputFormat) override; QMaybe createCaptureSession() override; QMaybe createPlayer(QMediaPlayer *player) override; QMaybe createCamera(QCamera *) override; QPlatformSurfaceCapture *createScreenCapture(QScreenCapture *) override; QPlatformSurfaceCapture *createWindowCapture(QWindowCapture *) override; QMaybe createRecorder(QMediaRecorder *) override; QMaybe createImageCapture(QImageCapture *) override; QMaybe createVideoSink(QVideoSink *sink) override; QMaybe createAudioInput(QAudioInput *input) override; // QPlatformAudioOutput *createAudioOutput(QAudioOutput *) override; protected: QPlatformMediaFormatInfo *createFormatInfo() override; QPlatformVideoDevices *createVideoDevices() override; QPlatformCapturableWindows *createCapturableWindows() override; }; QT_END_NAMESPACE #endif