Source code
Revision control
Copy as Markdown
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include "qmockvideodevices.h"
#include <QtMultimedia/private/qcameradevice_p.h>
QT_BEGIN_NAMESPACE
QMockVideoDevices::QMockVideoDevices(QPlatformMediaIntegration *mediaIntegration)
: QPlatformVideoDevices(mediaIntegration)
{
QCameraDevicePrivate *info = new QCameraDevicePrivate;
info->description = QStringLiteral("defaultCamera");
info->id = "default";
info->isDefault = true;
auto *f = new QCameraFormatPrivate{
QSharedData(),
QVideoFrameFormat::PixelFormat::Format_ARGB8888,
QSize(640, 480),
0,
30
};
info->videoFormats << f->create();
f = new QCameraFormatPrivate{
QSharedData(),
QVideoFrameFormat::PixelFormat::Format_YUV420P,
QSize(640, 480),
0,
30
};
info->videoFormats << f->create();
info->photoResolutions << QSize(640, 480) << QSize(1920, 1080);
m_cameraDevices.append(info->create());
info = new QCameraDevicePrivate;
info->description = QStringLiteral("frontCamera");
info->id = "front";
info->isDefault = false;
info->position = QCameraDevice::FrontFace;
f = new QCameraFormatPrivate{
QSharedData(),
QVideoFrameFormat::PixelFormat::Format_XRGB8888,
QSize(1280, 720),
0,
30
};
info->videoFormats << f->create();
info->photoResolutions << QSize(1280, 720);
m_cameraDevices.append(info->create());
info = new QCameraDevicePrivate;
info->description = QStringLiteral("backCamera");
info->id = "back";
info->isDefault = false;
info->position = QCameraDevice::BackFace;
m_cameraDevices.append(info->create());
}
void QMockVideoDevices::addNewCamera()
{
auto info = new QCameraDevicePrivate;
info->description = QLatin1String("newCamera") + QString::number(m_cameraDevices.size());
info->id =
QString(QLatin1String("camera") + QString::number(m_cameraDevices.size())).toUtf8();
info->isDefault = false;
m_cameraDevices.append(info->create());
onVideoInputsChanged();
}
QList<QCameraDevice> QMockVideoDevices::findVideoInputs() const
{
++m_findVideoInputsInvokeCount;
return m_cameraDevices;
}
QT_END_NAMESPACE