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
qandroidmediaencoder.cpp
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
#
include
"qandroidmediaencoder_p.h"
5
#
include
"qandroidmultimediautils_p.h"
6
#
include
"qandroidcapturesession_p.h"
7
#
include
"qandroidmediacapturesession_p.h"
8
9
QT_BEGIN_NAMESPACE
10
11
QAndroidMediaEncoder
::
QAndroidMediaEncoder
(
QMediaRecorder
*
parent
)
12
: QPlatformMediaRecorder(
parent
)
13
{
14
}
15
16
bool
QAndroidMediaEncoder
::isLocationWritable(
const
QUrl &location)
const
17
{
18
return
location.isValid()
19
&& (location.isLocalFile() || location.isRelative());
20
}
21
22
QMediaRecorder
::
RecorderState
QAndroidMediaEncoder
::
state
()
const
23
{
24
return
m_session ? m_session->state() : QMediaRecorder::StoppedState;
25
}
26
27
qint64
QAndroidMediaEncoder
::
duration
()
const
28
{
29
return
m_session ? m_session->duration() : 0;
30
31
}
32
33
void
QAndroidMediaEncoder
::
record
(QMediaEncoderSettings &settings)
34
{
35
if
(m_session)
36
m_session->start(settings, outputLocation());
37
}
38
39
void
QAndroidMediaEncoder
::
stop
()
40
{
41
if
(m_session)
42
m_session
->
stop
(
)
;
43
}
44
45
void
QAndroidMediaEncoder
::setOutputLocation(
const
QUrl &location)
46
{
47
if
(location.isLocalFile()) {
48
qt_androidRequestWriteStoragePermission
(
)
;
49
}
50
QPlatformMediaRecorder::setOutputLocation(location);
51
}
52
53
void
QAndroidMediaEncoder
::
setCaptureSession
(QPlatformMediaCaptureSession *session)
54
{
55
QAndroidMediaCaptureSession
*captureSession =
static_cast
<
QAndroidMediaCaptureSession
*>(session);
56
if
(m_service == captureSession)
57
return
;
58
59
if
(m_service)
60
stop
(
)
;
61
if
(m_session)
62
m_session
->
setMediaEncoder
(
nullptr
)
;
63
64
m_service = captureSession;
65
if
(!m_service)
66
return
;
67
m_session = m_service
->
captureSession
(
)
;
68
Q_ASSERT(m_session);
69
m_session
->
setMediaEncoder
(
this
)
;
70
}
71
72
QT_END_NAMESPACE
QAndroidCaptureSession::stop
void stop(bool error=false)
Definition
qandroidcapturesession.cpp:253
QAndroidCaptureSession::setMediaEncoder
void setMediaEncoder(QAndroidMediaEncoder *encoder)
Definition
qandroidcapturesession_p.h:54
QAndroidMediaCaptureSession
Definition
qandroidmediacapturesession_p.h:31
QAndroidMediaCaptureSession::captureSession
QAndroidCaptureSession * captureSession() const
Definition
qandroidmediacapturesession_p.h:53
QAndroidMediaEncoder
Definition
qandroidmediaencoder_p.h:27
QAndroidMediaEncoder::record
void record(QMediaEncoderSettings &settings) override
Definition
qandroidmediaencoder.cpp:33
QAndroidMediaEncoder::stop
void stop() override
Definition
qandroidmediaencoder.cpp:39
QAndroidMediaEncoder::state
QMediaRecorder::RecorderState state() const override
Definition
qandroidmediaencoder.cpp:22
QAndroidMediaEncoder::duration
qint64 duration() const override
Definition
qandroidmediaencoder.cpp:27
QAndroidMediaEncoder::setCaptureSession
void setCaptureSession(QPlatformMediaCaptureSession *session)
Definition
qandroidmediaencoder.cpp:53
QMediaRecorder
\inmodule QtMultimedia
Definition
qmediarecorder.h:21
QObjectData::parent
QObject * parent
Definition
qobject.h:73
QPlatformGraphicsBufferHelper
\inmodule QtGui
qt_androidRequestWriteStoragePermission
bool qt_androidRequestWriteStoragePermission()
Definition
qandroidmultimediautils.cpp:115
qtmultimedia
src
plugins
multimedia
android
mediacapture
qandroidmediaencoder.cpp
Generated on
for Qt by
1.14.0