Revision control

Copy as Markdown

// Copyright (C) 2026 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 "qquickgstreamervideosource_p.h"
#include <QtMultimedia/private/qgstreamervideosource_p.h>
#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
QQuickGStreamerVideoSource::QQuickGStreamerVideoSource(QObject *parent)
: QGStreamerVideoSource(parent)
{
}
bool QQuickGStreamerVideoSource::qmlIsActive() const
{
return m_pendingProperties ? m_pendingProperties->active : isActive();
}
void QQuickGStreamerVideoSource::qmlSetActive(bool active)
{
if (!m_pendingProperties)
QGStreamerVideoSource::setActive(active);
else if (std::exchange(m_pendingProperties->active, active) != active)
Q_EMIT activeChanged(active);
}
void QQuickGStreamerVideoSource::setQmlGstBinDescription(QString gstBinDescription)
{
if (!m_pendingProperties) {
// TODO: maybe handle exotic case when the required property is
// set more then once during component's initialization.
qWarning() << "GstBin's description must be set only once";
return;
}
auto properties = std::move(m_pendingProperties);
auto *sourcePrivate = QGStreamerVideoSourcePrivate::get(this);
sourcePrivate->createPlatformCamera(this, std::move(gstBinDescription), properties->active);
}
QT_END_NAMESPACE
#include "moc_qquickgstreamervideosource_p.cpp"