blob: 4bb90d3ee558df18edea51cbed12b965c2c9fb41 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
// Copyright (C) 2024 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
#include "qmediaframeinput_p.h"
QT_BEGIN_NAMESPACE
void QMediaFrameInputPrivate::setCaptureSession(QMediaCaptureSession *session)
{
if (session == m_captureSession)
return;
auto prevSession = std::exchange(m_captureSession, session);
updateCaptureSessionConnections(prevSession, session);
updateCanSendMediaFrame();
}
void QMediaFrameInputPrivate::updateCanSendMediaFrame()
{
const bool canSendMediaFrame = m_captureSession && checkIfCanSendMediaFrame();
if (m_canSendMediaFrame != canSendMediaFrame) {
m_canSendMediaFrame = canSendMediaFrame;
if (m_canSendMediaFrame)
emitReadyToSendMediaFrame();
}
}
void QMediaFrameInputPrivate::postponeCheckReadyToSend()
{
if (m_canSendMediaFrame && !m_postponeReadyToSendCheckRun) {
m_postponeReadyToSendCheckRun = true;
QMetaObject::invokeMethod(
q_ptr,
[this]() {
m_postponeReadyToSendCheckRun = false;
if (m_canSendMediaFrame)
emitReadyToSendMediaFrame();
},
Qt::QueuedConnection);
}
}
QT_END_NAMESPACE
|