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
qgstreamermediarecorder_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
QGSTREAMERMEDIARECORDER_H
5
#
define
QGSTREAMERMEDIARECORDER_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
<
mediacapture
/
qgstreamermediacapturesession_p
.
h
>
19
#
include
<
common
/
qgstreamermetadata_p
.
h
>
20
21
#
include
<
QtMultimedia
/
private
/
qplatformmediarecorder_p
.
h
>
22
#
include
<
QtCore
/
qurl
.
h
>
23
#
include
<
QtCore
/
qtimer
.
h
>
24
25
QT_BEGIN_NAMESPACE
26
27
class
QMediaMetaData;
28
class
QGstreamerMessage
;
29
30
class
QGstreamerMediaRecorder
:
public
QPlatformMediaRecorder
31
{
32
public
:
33
explicit
QGstreamerMediaRecorder
(QMediaRecorder *parent);
34
~
QGstreamerMediaRecorder
()
override
;
35
36
bool
isLocationWritable
(
const
QUrl &sink)
const
override
;
37
38
qint64
duration
()
const
override
;
39
40
void
record
(QMediaEncoderSettings &settings)
override
;
41
void
pause
()
override
;
42
void
resume
()
override
;
43
void
stop
()
override
;
44
45
void
setMetaData
(
const
QMediaMetaData &)
override
;
46
QMediaMetaData
metaData
()
const
override
;
47
48
void
setCaptureSession
(QPlatformMediaCaptureSession *session);
49
50
void
processBusMessage
(
const
QGstreamerMessage
&message);
51
52
private
:
53
struct
PauseControl {
54
explicit
PauseControl(QPlatformMediaRecorder &encoder) : encoder(encoder) { }
55
56
GstPadProbeReturn processBuffer(
const
QGstPad
& pad, GstPadProbeInfo *info);
57
void
installOn(
QGstPad
pad);
58
void
reset();
59
60
QPlatformMediaRecorder &encoder;
61
GstClockTime pauseOffsetPts = 0;
62
std::optional<GstClockTime> pauseStartPts;
63
std::optional<GstClockTime> firstBufferPts;
64
qint64 duration = 0;
65
};
66
67
PauseControl audioPauseControl;
68
PauseControl videoPauseControl;
69
70
void
handleSessionError(QMediaRecorder::Error code,
const
QString &description);
71
void
finalize();
72
73
QGstreamerMediaCaptureSession *m_session =
nullptr
;
74
QMediaMetaData m_metaData;
75
QTimer signalDurationChangedTimer;
76
77
bool
m_finalizing =
false
;
78
};
79
80
QT_END_NAMESPACE
81
82
#
endif
// QGSTREAMERMEDIARECORDER_H
QGstCaps
Definition
qgst_p.h:384
QGstElement
Definition
qgst_p.h:608
QGstElement::sink
QGstPad sink() const
Definition
qgst.cpp:1113
QGstElement::staticPad
QGstPad staticPad(const char *name) const
Definition
qgst.cpp:1103
QGstElement::createFromFactory
static QGstElement createFromFactory(const char *factory, const char *name=nullptr)
Definition
qgst.cpp:1017
QGstPad
Definition
qgst_p.h:544
QGstPad::link
bool link(const QGstPad &sink) const
Definition
qgst.cpp:908
QGstPad::unlinkPeer
bool unlinkPeer() const
Definition
qgst.cpp:918
QGstPipeline
Definition
qgstpipeline_p.h:30
QGstreamerAudioInput
Definition
qgstreameraudioinput_p.h:29
QGstreamerAudioInput::gstElement
QGstElement gstElement() const
Definition
qgstreameraudioinput_p.h:38
QGstreamerAudioOutput
Definition
qgstreameraudiooutput_p.h:29
QGstreamerAudioOutput::gstElement
QGstElement gstElement() const
Definition
qgstreameraudiooutput_p.h:39
QGstreamerCameraBase
Definition
qgstreamercamera_p.h:30
QGstreamerCameraBase::gstElement
virtual QGstElement gstElement() const =0
QGstreamerMediaCaptureSession::unlinkRecorder
void unlinkRecorder()
Definition
qgstreamermediacapturesession.cpp:341
QGstreamerMediaCaptureSession::finalizeRecorder
void finalizeRecorder()
Definition
qgstreamermediacapturesession.cpp:369
QGstreamerMediaCaptureSession::setMediaRecorder
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
Definition
qgstreamermediacapturesession.cpp:265
QGstreamerMediaCaptureSession::imageCapture
QPlatformImageCapture * imageCapture() override
Definition
qgstreamermediacapturesession.cpp:230
QGstreamerMediaCaptureSession::mediaRecorder
QPlatformMediaRecorder * mediaRecorder() override
Definition
qgstreamermediacapturesession.cpp:281
QGstreamerMediaCaptureSession::setAudioInput
void setAudioInput(QPlatformAudioInput *input) override
Definition
qgstreamermediacapturesession.cpp:382
QGstreamerMediaCaptureSession::camera
QPlatformCamera * camera() override
Definition
qgstreamermediacapturesession.cpp:151
QGstreamerMediaCaptureSession::~QGstreamerMediaCaptureSession
~QGstreamerMediaCaptureSession() override
Definition
qgstreamermediacapturesession.cpp:141
QGstreamerMediaCaptureSession::processBusMessage
bool processBusMessage(const QGstreamerMessage &) override
Definition
qgstreamermediacapturesession.cpp:511
QGstreamerMediaCaptureSession::setAudioOutput
void setAudioOutput(QPlatformAudioOutput *output) override
Definition
qgstreamermediacapturesession.cpp:470
QGstreamerMediaCaptureSession::gstreamerVideoSink
QGstreamerRelayVideoSink * gstreamerVideoSink() const
Definition
qgstreamermediacapturesession.cpp:506
QGstreamerMediaCaptureSession::setImageCapture
void setImageCapture(QPlatformImageCapture *imageCapture) override
Definition
qgstreamermediacapturesession.cpp:235
QGstreamerMediaCaptureSession::pipeline
const QGstPipeline & pipeline() const
Definition
qgstreamermediacapturesession.cpp:377
QGstreamerMediaCaptureSession::setCamera
void setCamera(QPlatformCamera *camera) override
Definition
qgstreamermediacapturesession.cpp:156
QGstreamerMediaRecorder
Definition
qgstreamermediarecorder_p.h:31
QGstreamerMediaRecorder::record
void record(QMediaEncoderSettings &settings) override
Definition
qgstreamermediarecorder.cpp:252
QGstreamerMediaRecorder::pause
void pause() override
Definition
qgstreamermediarecorder.cpp:326
QGstreamerMediaRecorder::setCaptureSession
void setCaptureSession(QPlatformMediaCaptureSession *session)
Definition
qgstreamermediarecorder.cpp:380
QGstreamerMediaRecorder::QGstreamerMediaRecorder
QGstreamerMediaRecorder(QMediaRecorder *parent)
Definition
qgstreamermediarecorder.cpp:29
QGstreamerMediaRecorder::processBusMessage
void processBusMessage(const QGstreamerMessage &message)
Definition
qgstreamermediarecorder.cpp:56
QGstreamerMediaRecorder::~QGstreamerMediaRecorder
~QGstreamerMediaRecorder() override
Definition
qgstreamermediarecorder.cpp:38
QGstreamerMediaRecorder::resume
void resume() override
Definition
qgstreamermediarecorder.cpp:336
QGstreamerMediaRecorder::isLocationWritable
bool isLocationWritable(const QUrl &sink) const override
Definition
qgstreamermediarecorder.cpp:44
QGstreamerMediaRecorder::duration
qint64 duration() const override
Definition
qgstreamermediarecorder.cpp:107
QGstreamerMediaRecorder::setMetaData
void setMetaData(const QMediaMetaData &) override
Definition
qgstreamermediarecorder.cpp:368
QGstreamerMediaRecorder::stop
void stop() override
Definition
qgstreamermediarecorder.cpp:345
QGstreamerMediaRecorder::metaData
QMediaMetaData metaData() const override
Definition
qgstreamermediarecorder.cpp:375
QGstreamerMessage
Definition
qgstreamermessage_p.h:26
QGstreamerRelayVideoSink
Definition
qgstreamervideosink_p.h:30
QGstreamerRelayVideoSink::disconnectPluggableVideoSink
void disconnectPluggableVideoSink()
Definition
qgstreamervideosink.cpp:192
QGstreamerVideoOutput
Definition
qgstreamervideooutput_p.h:32
QGstreamerVideoOutput::setVideoSink
void setVideoSink(QGstreamerRelayVideoSink *sink)
Definition
qgstreamervideooutput.cpp:80
QGstreamerVideoOutput::gstElement
QGstElement gstElement() const
Definition
qgstreamervideooutput_p.h:42
QGstreamerVideoOutput::gstreamerVideoSink
QGstreamerRelayVideoSink * gstreamerVideoSink() const
Definition
qgstreamervideooutput_p.h:40
QGstreamerVideoOutput::setIsPreview
void setIsPreview()
Definition
qgstreamervideooutput.cpp:150
QGstreamerVideoOutput::setActive
void setActive(bool)
Definition
qgstreamervideooutput.cpp:132
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_BEGIN_NAMESPACE::executeWhilePadsAreIdle
void executeWhilePadsAreIdle(QSpan< QGstPad > pads, Functor &&f)
Definition
qgstreamermediacapturesession.cpp:31
QT_BEGIN_NAMESPACE::finishStateChangeOnElements
void finishStateChangeOnElements(QSpan< const QGstElement > elements)
Definition
qgstreamermediacapturesession.cpp:56
QT_BEGIN_NAMESPACE::setStateOnElements
void setStateOnElements(QSpan< const QGstElement > elements, GstState state)
Definition
qgstreamermediacapturesession.cpp:49
QT_BEGIN_NAMESPACE::makeTee
QGstElement makeTee(const char *name)
Definition
qgstreamermediacapturesession.cpp:23
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
QGstreamerMediaCaptureSession::RecorderElements
Definition
qgstreamermediacapturesession_p.h:64
QGstreamerMediaCaptureSession::RecorderElements::audioSink
QGstPad audioSink
Definition
qgstreamermediacapturesession_p.h:68
QGstreamerMediaCaptureSession::RecorderElements::videoSink
QGstPad videoSink
Definition
qgstreamermediacapturesession_p.h:69
qtmultimedia
src
plugins
multimedia
gstreamer
mediacapture
qgstreamermediarecorder_p.h
Generated on
for Qt by
1.18.0