Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qgstreamermediacapture_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 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#ifndef QGSTREAMERCAPTURESERVICE_H
5#define QGSTREAMERCAPTURESERVICE_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <private/qplatformmediacapture_p.h>
19#include <private/qplatformmediaintegration_p.h>
20
21#include <qgst_p.h>
22#include <qgstpipeline_p.h>
23
24#include <qtimer.h>
25
27
35
37{
39
40public:
43
44 QPlatformCamera *camera() override;
45 void setCamera(QPlatformCamera *camera) override;
46
49
52
54 QGstreamerAudioInput *audioInput() { return gstAudioInput; }
55
56 void setVideoPreview(QVideoSink *sink) override;
58
59 void linkEncoder(QGstPad audioSink, QGstPad videoSink);
60 void unlinkEncoder();
61
62 QGstPipeline pipeline() const { return gstPipeline; }
63
65
66private:
68
70 // Gst elements
71 QGstPipeline gstPipeline;
72
73 QGstreamerAudioInput *gstAudioInput = nullptr;
74 QGstreamerCamera *gstCamera = nullptr;
75
76 QGstElement gstAudioTee;
77 QGstElement gstVideoTee;
78 QGstElement encoderVideoCapsFilter;
79 QGstElement encoderAudioCapsFilter;
80
81 QGstPad encoderAudioSink;
82 QGstPad encoderVideoSink;
83 QGstPad imageCaptureSink;
84
85 QGstreamerAudioOutput *gstAudioOutput = nullptr;
86 QGstreamerVideoOutput *gstVideoOutput = nullptr;
87
88 QGstreamerMediaEncoder *m_mediaEncoder = nullptr;
89 QGstreamerImageCapture *m_imageCapture = nullptr;
90};
91
93
94#endif // QGSTREAMERCAPTURESERVICE_H
static QMaybe< QPlatformMediaCaptureSession * > create()
void setImageCapture(QPlatformImageCapture *imageCapture) override
QGstreamerVideoSink * gstreamerVideoSink() const
void setAudioOutput(QPlatformAudioOutput *output) override
void setCamera(QPlatformCamera *camera) override
void setAudioInput(QPlatformAudioInput *input) override
QPlatformCamera * camera() override
QPlatformMediaRecorder * mediaRecorder() override
QGstreamerAudioInput * audioInput()
void setVideoPreview(QVideoSink *sink) override
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
QPlatformImageCapture * imageCapture() override
void linkEncoder(QGstPad audioSink, QGstPad videoSink)
The QVideoSink class represents a generic sink for video data.
Definition qvideosink.h:22
QMediaRecorder * recorder
Definition camera.cpp:20
Combined button and popup list for selecting options.
GLsizei GLenum GLboolean sink
GLenum GLenum GLenum input
#define Q_OBJECT
QT_BEGIN_NAMESPACE typedef uchar * output