Skip to content

Commit 5a48931

Browse files
robertkillBLumia
authored andcommitted
feat: Upgrade to QT6
as title log: as title
1 parent ce4eb9f commit 5a48931

File tree

5 files changed

+63
-66
lines changed

5 files changed

+63
-66
lines changed

debian/control

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Priority: optional
44
Maintainer: Deepin Sysdev <[email protected]>
55
Build-Depends: debhelper (>= 8.0.0),
66
pkg-config,
7-
qt5-qmake,
8-
qtbase5-dev,
9-
libdtkcore-dev,
7+
qmake6,
8+
qt6-base-dev,
9+
libdtk6core-dev,
1010
seetaface-boxes,
1111
seetaface-landmarker,
1212
seetaface-anti-spoofing-x,
@@ -16,9 +16,9 @@ Build-Depends: debhelper (>= 8.0.0),
1616
seetaface-pose-estimation,
1717
seetaface-authorize,
1818
seetaface-tennis,
19-
libdtkwidget-dev,
20-
libdtkcore5-bin,
21-
qtmultimedia5-dev
19+
libdtk6widget-dev,
20+
libdtk6core-bin,
21+
qt6-multimedia-dev
2222
Standards-Version: 4.5.1
2323
Homepage: https://github.com/linuxdeepin/deepin-face
2424

@@ -36,7 +36,7 @@ Depends: ${shlibs:Depends},
3636
seetaface-authorize,
3737
seetaface-tennis,
3838
seetaface-models,
39-
libqt5multimedia5-plugins,
39+
libqt6multimedia6,
4040
gstreamer1.0-plugins-bad
4141
Description: Face recognition service
4242
deepin-face is a face recognition service implemented by the open source face recognition engine seetaface

debian/rules

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
#!/usr/bin/make -f
22
# See debhelper(7) (uncomment to enable)
33
# output every command that modifies files on the build system.
4-
export DH_VERBOSE = 1
5-
export QT_SELECT=5
6-
4+
export DH_VERBOSE=1
75

86
# see FEATURE AREAS in dpkg-buildflags(1)
97
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
@@ -16,9 +14,8 @@ export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
1614

1715

1816
%:
19-
dh $@
20-
17+
dh $@ --buildsystem qmake6
2118

2219
override_dh_auto_install:
2320
dh_auto_install -- prefix=/usr
24-
dh_installtmpfiles deepin-face.tmpfiles
21+
dh_installtmpfiles deepin-face.tmpfiles

drivermanger.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ QDBusUnixFileDescriptor DriverManger::enrollStart(QString chara,
9191
QMetaObject::invokeMethod(m_spErollthread.data(),
9292
"Start",
9393
Qt::QueuedConnection,
94-
QGenericReturnArgument(),
9594
Q_ARG(QString, actionId),
9695
Q_ARG(int, fd[1]));
9796

@@ -153,7 +152,6 @@ QDBusUnixFileDescriptor DriverManger::verifyStart(QStringList charas,
153152
QMetaObject::invokeMethod(m_spVerifyThread.data(),
154153
"Start",
155154
Qt::QueuedConnection,
156-
QGenericReturnArgument(),
157155
Q_ARG(QString, actionId),
158156
Q_ARG(QVector<float*>, faceCharas));
159157
return QDBusUnixFileDescriptor(0);

workmodule.cpp

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "workmodule.h"
66
#include "modelmanger.h"
77

8-
#include <QCameraInfo>
8+
#include <QMediaDevices>
99
#include <QMutex>
1010
#include <QMutexLocker>
1111
#include <QtConcurrent>
@@ -34,44 +34,42 @@ void ErollThread::Start(QString actionId, int socket)
3434
void ErollThread::run()
3535
{
3636
m_camera.reset();
37-
auto cameras = QCameraInfo::availableCameras();
38-
for (const auto &obj : qAsConst(cameras)) {
37+
auto cameras = QMediaDevices::videoInputs();
38+
for (const QCameraDevice &obj : cameras) {
3939
m_camera.reset(new QCamera(obj));
4040
if (m_camera->isAvailable())
4141
break;
4242
}
4343

44-
4544
if (m_camera.isNull()) {
4645
qDebug() << "open camera fail";
4746
Q_EMIT processStatus(m_actionId, FaceEnrollException);
4847
return;
4948
}
5049

51-
m_camera->setCaptureMode(QCamera::CaptureStillImage);
52-
m_imageCapture.reset(new QCameraImageCapture(m_camera.data()));
53-
m_imageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
54-
QList<QSize> supportedResolutions = m_imageCapture->supportedResolutions();
50+
m_captureSession.reset(new QMediaCaptureSession);
51+
m_captureSession->setCamera(m_camera.data());
52+
m_imageCapture.reset(new QImageCapture);
53+
m_captureSession->setImageCapture(m_imageCapture.data());
54+
QList<QSize> supportedResolutions = m_camera->cameraDevice().photoResolutions();
5555
if (supportedResolutions.contains(QSize(800, 600))) {
56-
auto settings = m_imageCapture->encodingSettings();
57-
settings.setResolution(QSize(800, 600));
58-
m_imageCapture->setEncodingSettings(settings);
56+
m_imageCapture->setResolution(QSize(800, 600));
5957
}
60-
connect(m_camera.data(), &QCamera::stateChanged, this, &ErollThread::updateCameraState);
61-
connect(m_imageCapture.data(), &QCameraImageCapture::readyForCaptureChanged, this, &ErollThread::readyForCapture);
62-
connect(m_imageCapture.data(), &QCameraImageCapture::imageCaptured, this, &ErollThread::processCapturedImage);
63-
connect(m_imageCapture.data(), QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error),
58+
connect(m_imageCapture.data(), &QImageCapture::readyForCaptureChanged, this, &ErollThread::readyForCapture);
59+
connect(m_imageCapture.data(), &QImageCapture::imageCaptured, this, &ErollThread::processCapturedImage);
60+
connect(m_imageCapture.data(), QOverload<int, QImageCapture::Error, const QString &>::of(&QImageCapture::errorOccurred),
6461
this, &ErollThread::captureError);
6562
m_camera->start();
63+
m_imageCapture->capture();
6664
}
6765

6866
void ErollThread::Stop()
6967
{
7068
qDebug() << "ErollThread::Stop thread:" << QThread::currentThreadId();
71-
m_imageCapture->cancelCapture();
69+
// m_imageCapture->cancelCapture();
7270
m_stopCapture = true;
7371
m_camera->stop();
74-
m_camera->unload();
72+
// m_camera->unload();
7573
close(m_fileSocket);
7674
}
7775

@@ -115,10 +113,10 @@ void ErollThread::sendCapture(QImage &img)
115113
free(buf);
116114
}
117115

118-
void ErollThread::updateCameraState(QCamera::State state)
119-
{
120-
qInfo() << "updateCameraState" << state;
121-
}
116+
// void ErollThread::updateCameraState(QCamera::State state)
117+
// {
118+
// qInfo() << "updateCameraState" << state;
119+
// }
122120

123121
void ErollThread::readyForCapture(bool ready)
124122
{
@@ -128,7 +126,7 @@ void ErollThread::readyForCapture(bool ready)
128126
}
129127
}
130128

131-
void ErollThread::captureError(int, QCameraImageCapture::Error, const QString &errorString)
129+
void ErollThread::captureError(int, QImageCapture::Error, const QString &errorString)
132130
{
133131
qDebug() << "read camera fail:" << errorString;
134132
Q_EMIT processStatus(m_actionId, FaceEnrollException);
@@ -297,40 +295,40 @@ void VerifyThread::run()
297295
{
298296
qDebug() << "Verify run";
299297
m_camera.reset();
300-
auto cameras = QCameraInfo::availableCameras();
301-
for (const auto &obj : qAsConst(cameras)) {
298+
m_camera.reset();
299+
auto cameras = QMediaDevices::videoInputs();
300+
for (const QCameraDevice &obj : cameras) {
302301
m_camera.reset(new QCamera(obj));
303302
if (m_camera->isAvailable())
304303
break;
305304
}
305+
306306
if (m_camera.isNull()) {
307307
qDebug() << "open camera fail";
308308
Q_EMIT processStatus(m_actionId, FaceEnrollException);
309309
return;
310310
}
311311

312-
m_camera->setCaptureMode(QCamera::CaptureStillImage);
313-
m_imageCapture.reset(new QCameraImageCapture(m_camera.data()));
314-
m_imageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
315-
QList<QSize> supportedResolutions = m_imageCapture->supportedResolutions();
312+
m_captureSession.reset(new QMediaCaptureSession);
313+
m_captureSession->setCamera(m_camera.data());
314+
m_imageCapture.reset(new QImageCapture);
315+
m_captureSession->setImageCapture(m_imageCapture.data());
316+
QList<QSize> supportedResolutions = m_camera->cameraDevice().photoResolutions();
316317
if (supportedResolutions.contains(QSize(800, 600))) {
317-
auto settings = m_imageCapture->encodingSettings();
318-
settings.setResolution(QSize(800, 600));
319-
m_imageCapture->setEncodingSettings(settings);
318+
m_imageCapture->setResolution(QSize(800, 600));
320319
}
321320

322-
connect(m_camera.data(), &QCamera::stateChanged, this, &VerifyThread::updateCameraState);
323-
connect(m_imageCapture.data(), &QCameraImageCapture::readyForCaptureChanged, this, &VerifyThread::readyForCapture);
324-
connect(m_imageCapture.data(), &QCameraImageCapture::imageCaptured, this, &VerifyThread::processCapturedImage);
325-
connect(m_imageCapture.data(), QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error),
321+
connect(m_imageCapture.data(), &QImageCapture::readyForCaptureChanged, this, &VerifyThread::readyForCapture);
322+
connect(m_imageCapture.data(), &QImageCapture::imageCaptured, this, &VerifyThread::processCapturedImage);
323+
connect(m_imageCapture.data(), QOverload<int, QImageCapture::Error, const QString &>::of(&QImageCapture::errorOccurred),
326324
this, &VerifyThread::captureError);
327325
m_camera->start();
328326
}
329327

330-
void VerifyThread::updateCameraState(QCamera::State state)
331-
{
332-
qDebug() << "updateCameraState" << state;
333-
}
328+
// void VerifyThread::updateCameraState(QCamera::State state)
329+
// {
330+
// qDebug() << "updateCameraState" << state;
331+
// }
334332

335333
void VerifyThread::readyForCapture(bool ready)
336334
{
@@ -340,7 +338,7 @@ void VerifyThread::readyForCapture(bool ready)
340338
}
341339
}
342340

343-
void VerifyThread::captureError(int, QCameraImageCapture::Error, const QString &errorString)
341+
void VerifyThread::captureError(int, QImageCapture::Error, const QString &errorString)
344342
{
345343
qDebug() << "read camera fail:" << errorString;
346344
Q_EMIT processStatus(m_actionId, FaceEnrollException);
@@ -466,11 +464,11 @@ void VerifyThread::Stop()
466464
{
467465
qDebug() << "VerifyThread::Stop thread:" << QThread::currentThreadId();
468466

469-
m_imageCapture->cancelCapture();
467+
// m_imageCapture->cancelCapture();
470468
// 当关闭相机后, 会取消图片的抓取, 此时不需要去处理抓取的图片
471-
disconnect(m_imageCapture.data(), &QCameraImageCapture::imageCaptured, this, &VerifyThread::processCapturedImage);
469+
disconnect(m_imageCapture.data(), &QImageCapture::imageCaptured, this, &VerifyThread::processCapturedImage);
472470
m_camera->stop();
473-
m_camera->unload();
471+
// m_camera->unload();
474472
for (int i = 0; i < m_charaDatas.size(); i++) {
475473
if (m_charaDatas[i] != nullptr) {
476474
free(m_charaDatas[i]);

workmodule.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,22 @@
55
#ifndef WORKMODULE_H
66
#define WORKMODULE_H
77

8-
#include "qcamera.h"
8+
#include <QCamera>
99
#include <memory>
1010
#include <unistd.h>
1111
#include <QDebug>
1212
#include <QImage>
1313
#include <QPixmap>
1414
#include <QThread>
15-
#include <QCameraImageCapture>
15+
#include <QImageCapture>
16+
#include <QMediaCaptureSession>
1617

1718
QT_BEGIN_NAMESPACE
1819
class QMutex;
1920
QT_END_NAMESPACE
2021

2122
class DriverManger;
23+
class QMediaCaptureSession;
2224
class ErollThread : public QObject
2325
{
2426
Q_OBJECT
@@ -39,14 +41,15 @@ public Q_SLOTS:
3941

4042

4143
private Q_SLOTS:
42-
void updateCameraState(QCamera::State state);
44+
// void updateCameraState(QCamera::State state);
4345
void readyForCapture(bool ready);
44-
void captureError(int, QCameraImageCapture::Error, const QString &errorString);
46+
void captureError(int, QImageCapture::Error, const QString &errorString);
4547
void processCapturedImage(int id, const QImage &preview);
4648

4749
private:
4850
QScopedPointer<QCamera> m_camera;
49-
QScopedPointer<QCameraImageCapture> m_imageCapture;
51+
QScopedPointer<QImageCapture> m_imageCapture;
52+
QScopedPointer<QMediaCaptureSession> m_captureSession;
5053
QString m_actionId;
5154
int m_fileSocket;
5255
bool m_bFirst;
@@ -72,14 +75,15 @@ public Q_SLOTS:
7275
void run();
7376

7477
private Q_SLOTS:
75-
void updateCameraState(QCamera::State state);
78+
// void updateCameraState(QCamera::State state);
7679
void readyForCapture(bool ready);
77-
void captureError(int, QCameraImageCapture::Error, const QString &errorString);
80+
void captureError(int, QImageCapture::Error, const QString &errorString);
7881
void processCapturedImage(int id, const QImage &preview);
7982

8083
private:
8184
QScopedPointer<QCamera> m_camera;
82-
QScopedPointer<QCameraImageCapture> m_imageCapture;
85+
QScopedPointer<QImageCapture> m_imageCapture;
86+
QScopedPointer<QMediaCaptureSession> m_captureSession;
8387
QString m_actionId;
8488
QVector<float*> m_charaDatas;
8589
};

0 commit comments

Comments
 (0)