Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qlibcamera_camera_p.h
Go to the documentation of this file.
1
// Copyright (C) 2026 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
#
ifndef
QLIBCAMERA_CAMERA_P_H
4
#
define
QLIBCAMERA_CAMERA_P_H
5
6
//
7
// W A R N I N G
8
// -------------
9
//
10
// This file is not part of the Qt API. It exists purely as an
11
// implementation detail. This header file may change from version to
12
// version without notice, or even be removed.
13
//
14
// We mean it.
15
//
16
17
#
include
"qlibcamera_stream_p.h"
// for the full QLibCameraCameraStream definition
18
19
#
include
<
QtMultimedia
/
private
/
qplatformcamera_p
.
h
>
20
#
include
<
QtCore
/
private
/
qexpected_p
.
h
>
21
22
#
include
<
memory
>
23
#
include
<
tuple
>
24
#
include
<
utility
>
25
#
include
<
vector
>
26
27
namespace
libcamera
{
28
class
Camera;
29
class
CameraConfiguration;
30
class
FrameBufferAllocator;
31
class
Request;
32
}
// namespace libcamera
33
34
QT_BEGIN_NAMESPACE
35
36
namespace
QLibCamera
{
37
38
class
QLibCameraInstance
;
39
40
class
QLibCameraCamera
final
:
public
QPlatformCamera
41
{
42
Q_OBJECT
43
public
:
44
explicit
QLibCameraCamera(QCamera *parent, std::shared_ptr<QLibCameraInstance>);
45
~
QLibCameraCamera
()
override
;
46
47
bool
isActive
()
const
override
{
return
m_active; }
48
void
setActive
(
bool
active)
override
;
49
50
void
setCamera
(
const
QCameraDevice &)
override
;
51
bool
setCameraFormat
(
const
QCameraFormat &)
override
;
52
53
void
setExposureMode
(
QCamera
::
ExposureMode
)
override
;
54
bool
isExposureModeSupported
(QCamera::ExposureMode mode)
const
override
;
55
void
setExposureCompensation
(
float
compensation)
override
;
56
void
setManualIsoSensitivity
(
int
iso)
override
;
57
void
setManualExposureTime
(
float
seconds)
override
;
58
59
void
setWhiteBalanceMode
(
QCamera
::
WhiteBalanceMode
)
override
;
60
void
setColorTemperature
(
int
temperature)
override
;
61
62
void
zoomTo
(
float
newZoomFactor,
float
rate = -1.)
override
;
63
64
QVideoFrameFormat
frameFormat
()
const
override
;
65
66
private
:
67
int
cameraPixelFormatScore
(
QVideoFrameFormat
::
PixelFormat
,
68
QVideoFrameFormat
::
ColorRange
)
const
override
;
69
70
using
StartCapturingResult = q23::expected<
void
, std::tuple<QCamera::Error, QString>>;
71
72
StartCapturingResult startCapturing();
73
void
startCapturingReportingErrors();
74
void
stopCapturing();
75
76
template
<
typename
Fn>
77
void
withPendingControls(Fn &&fn)
78
{
79
if
(m_stream)
80
m_stream->withPendingControls(std::forward<Fn>(fn));
81
}
82
83
// Lifecycle of the libcamera stream
84
enum
class
StreamState : uint8_t {
85
Idle,
86
Acquired,
87
Running,
88
};
89
90
std
::shared_ptr<
QLibCameraInstance
> m_instance;
91
std
::shared_ptr<
libcamera
::Camera> m_camera;
92
std::unique_ptr<QLibCameraCameraStream> m_stream;
93
94
QCameraDevice m_cameraDevice;
95
bool
m_active =
false
;
96
StreamState m_streamState = StreamState::Idle;
97
98
std::unique_ptr<libcamera::CameraConfiguration> m_config;
99
std::unique_ptr<libcamera::FrameBufferAllocator> m_allocator;
100
std::vector<std::unique_ptr<libcamera::Request>> m_requests;
101
102
int
m_stride = 0;
103
QVideoFrameFormat::ColorSpace m_colorSpace = QVideoFrameFormat::ColorSpace_Undefined;
104
QVideoFrameFormat::ColorRange m_colorRange = QVideoFrameFormat::ColorRange_Unknown;
105
};
106
107
}
// namespace QLibCamera
108
109
QT_END_NAMESPACE
110
111
#
endif
// QLIBCAMERA_CAMERA_P_H
QLibCamera::QLibCameraCamera::setExposureCompensation
void setExposureCompensation(float compensation) override
Definition
qlibcamera_camera.cpp:394
QLibCamera::QLibCameraCamera::setManualIsoSensitivity
void setManualIsoSensitivity(int iso) override
Definition
qlibcamera_camera.cpp:402
QLibCamera::QLibCameraCamera::setActive
void setActive(bool active) override
Definition
qlibcamera_camera.cpp:79
QLibCamera::QLibCameraCamera::setCamera
void setCamera(const QCameraDevice &) override
Definition
qlibcamera_camera.cpp:99
QLibCamera::QLibCameraCamera::setManualExposureTime
void setManualExposureTime(float seconds) override
Definition
qlibcamera_camera.cpp:410
QLibCamera::QLibCameraCamera::setCameraFormat
bool setCameraFormat(const QCameraFormat &) override
Definition
qlibcamera_camera.cpp:125
QLibCamera::QLibCameraCamera::zoomTo
void zoomTo(float newZoomFactor, float rate=-1.) override
Definition
qlibcamera_camera.cpp:436
QLibCamera::QLibCameraCamera::~QLibCameraCamera
~QLibCameraCamera() override
Definition
qlibcamera_camera.cpp:57
QLibCamera::QLibCameraCamera::setExposureMode
void setExposureMode(QCamera::ExposureMode) override
Definition
qlibcamera_camera.cpp:379
QLibCamera::QLibCameraCamera::frameFormat
QVideoFrameFormat frameFormat() const override
Definition
qlibcamera_camera.cpp:447
QLibCamera::QLibCameraCamera::cameraPixelFormatScore
int cameraPixelFormatScore(QVideoFrameFormat::PixelFormat, QVideoFrameFormat::ColorRange) const override
Definition
qlibcamera_camera.cpp:62
QLibCamera::QLibCameraCamera::setColorTemperature
void setColorTemperature(int temperature) override
Definition
qlibcamera_camera.cpp:428
QLibCamera::QLibCameraCamera::isActive
bool isActive() const override
Definition
qlibcamera_camera_p.h:47
QLibCamera::QLibCameraCamera::setWhiteBalanceMode
void setWhiteBalanceMode(QCamera::WhiteBalanceMode) override
Definition
qlibcamera_camera.cpp:418
QLibCamera::QLibCameraCamera::isExposureModeSupported
bool isExposureModeSupported(QCamera::ExposureMode mode) const override
Definition
qlibcamera_camera.cpp:389
QLibCamera::QLibCameraInstance
Definition
qlibcamera_instance_p.h:32
QLibCamera::QLibCameraControls
Definition
qlibcamera_controls.cpp:16
QLibCamera::QLibCameraControls::setExposureCompensation
void setExposureCompensation(ControlList &pending, float stops)
Definition
qlibcamera_controls.cpp:48
QLibCamera::QLibCameraControls::setAnalogueGainForIso
void setAnalogueGainForIso(ControlList &pending, int iso)
Definition
qlibcamera_controls.cpp:53
QLibCamera::QLibCameraControls::setAwbEnable
void setAwbEnable(ControlList &pending, bool enable)
Definition
qlibcamera_controls.cpp:60
QLibCamera::QLibCameraControls::setZoomFactor
void setZoomFactor(ControlList &pending, const ControlInfoMap &controls, float zoomFactor)
Definition
qlibcamera_controls.cpp:71
QLibCamera::QLibCameraControls::setColorTemperature
void setColorTemperature(ControlList &pending, int kelvin)
Definition
qlibcamera_controls.cpp:65
QLibCamera::QLibCameraControls::setManualExposureTime
void setManualExposureTime(ControlList &pending, float seconds)
Definition
qlibcamera_controls.cpp:41
QLibCamera::QLibCameraControls::setAeEnable
void setAeEnable(ControlList &pending, bool enable)
Definition
qlibcamera_controls.cpp:36
QLibCamera::QLibCameraFormatSupport
Definition
qlibcamera_format_support.cpp:26
QLibCamera
Definition
qplatformlibcameraintegration.cpp:13
libcamera
Definition
qlibcamera_camera_p.h:27
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtmultimedia
src
plugins
libcamera
qlibcamera_camera_p.h
Generated on
for Qt by
1.18.0