Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqnxplatformcamera_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 Research In Motion
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3#ifndef QQNXPLATFORMCAMERA_H
4#define QQNXPLATFORMCAMERA_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 "qqnxcamera_p.h"
18
19#include <private/qplatformcamera_p.h>
20#include <private/qplatformmediarecorder_p.h>
21
22#include <QtCore/qlist.h>
23#include <QtCore/qmutex.h>
24#include <QtCore/qurl.h>
25
26#include <deque>
27#include <functional>
28#include <memory>
29
31
32class QQnxPlatformCameraFrameBuffer;
34class QQnxVideoSink;
36
38{
40public:
43
44 bool isActive() const override;
45 void setActive(bool active) override;
46 void start();
47 void stop();
48
49 void setCamera(const QCameraDevice &camera) override;
50
51 bool setCameraFormat(const QCameraFormat &format) override;
52
53 void setCaptureSession(QPlatformMediaCaptureSession *session) override;
54
55 bool isFocusModeSupported(QCamera::FocusMode mode) const override;
57
58 void setCustomFocusPoint(const QPointF &point) override;
59
60 void setFocusDistance(float distance) override;
61
62 void zoomTo(float newZoomFactor, float rate = -1.) override;
63
64 void setExposureCompensation(float ev) override;
65
66 int isoSensitivity() const override;
67 void setManualIsoSensitivity(int value) override;
68 void setManualExposureTime(float seconds) override;
69 float exposureTime() const override;
70
73 void setColorTemperature(int temperature) override;
74
75 void setOutputUrl(const QUrl &url);
77
79
80 using VideoFrameCallback = std::function<void(const QVideoFrame&)>;
82
83private:
84 void updateCameraFeatures();
85 void setColorTemperatureInternal(unsigned temp);
86
87 bool isVideoEncodingSupported() const;
88
89 void onFrameAvailable();
90
91 QQnxMediaCaptureSession *m_session = nullptr;
92 QQnxVideoSink *m_videoSink = nullptr;
93
94 QCameraDevice m_cameraDevice;
95
96 QUrl m_outputUrl;
97
98 QMediaEncoderSettings m_encoderSettings;
99
100 uint32_t m_minColorTemperature = 0;
101 uint32_t m_maxColorTemperature = 0;
102
103 QMutex m_currentFrameMutex;
104
105 std::unique_ptr<QQnxCamera> m_qnxCamera;
106 std::unique_ptr<QQnxCameraFrameBuffer> m_currentFrame;
107
108 std::deque<VideoFrameCallback> m_videoFrameRequests;
109};
110
112
113#endif
The QCameraDevice class provides general information about camera devices.
The QCameraFormat class describes a video format supported by a camera device. \inmodule QtMultimedia...
The QCamera class provides interface for system camera devices.
Definition qcamera.h:28
WhiteBalanceMode
\value WhiteBalanceAuto Auto white balance mode.
Definition qcamera.h:112
FocusMode
\value FocusModeAuto Continuous auto focus mode.
Definition qcamera.h:67
\inmodule QtCore
Definition qmutex.h:281
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
\inmodule QtCore\reentrant
Definition qpoint.h:217
QQnxPlatformCamera(QCamera *parent)
void setManualExposureTime(float seconds) override
void setMediaEncoderSettings(const QMediaEncoderSettings &settings)
void setExposureCompensation(float ev) override
void requestVideoFrame(VideoFrameCallback cb)
std::function< void(const QVideoFrame &)> VideoFrameCallback
void setCamera(const QCameraDevice &camera) override
void setCaptureSession(QPlatformMediaCaptureSession *session) override
void setOutputUrl(const QUrl &url)
void setManualIsoSensitivity(int value) override
bool isWhiteBalanceModeSupported(QCamera::WhiteBalanceMode mode) const override
void setCustomFocusPoint(const QPointF &point) override
int isoSensitivity() const override
void setColorTemperature(int temperature) override
void setWhiteBalanceMode(QCamera::WhiteBalanceMode mode) override
float exposureTime() const override
bool isFocusModeSupported(QCamera::FocusMode mode) const override
void setFocusDistance(float distance) override
void zoomTo(float newZoomFactor, float rate=-1.) override
bool isActive() const override
void setFocusMode(QCamera::FocusMode mode) override
bool setCameraFormat(const QCameraFormat &format) override
void setActive(bool active) override
\inmodule QtCore
Definition qurl.h:94
The QVideoFrame class represents a frame of video data.
Definition qvideoframe.h:27
QCamera * camera
Definition camera.cpp:19
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum mode
GLsizei GLsizei GLfloat distance
GLint GLsizei GLsizei GLenum format
GLuint GLenum * rate
SSL_CTX int(* cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
#define Q_OBJECT
QSettings settings("MySoft", "Star Runner")
[0]
QUrl url("example.com")
[constructor-url-reference]