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
avfimagecapture_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 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
4
#
ifndef
AVFCAMERAIMAGECAPTURE_H
5
#
define
AVFCAMERAIMAGECAPTURE_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
QtMultimedia
/
private
/
qplatformimagecapture_p
.
h
>
19
#
include
<
QtCore
/
qsemaphore
.
h
>
20
21
#
include
<
camera
/
avfcamerasession_p
.
h
>
22
23
#
include
<
memory
>
24
#
include
<
queue
>
25
26
#
import
<
AVFoundation
/
AVFoundation
.
h
>
27
28
QT_BEGIN_NAMESPACE
29
30
class
AVFImageCapture final :
public
QPlatformImageCapture
31
{
32
Q_OBJECT
33
34
public
:
35
struct
CaptureRequest {
36
int
captureId{};
37
std::shared_ptr<QSemaphore> previewReady;
38
};
39
40
AVFImageCapture(QImageCapture *parent =
nullptr
);
41
~AVFImageCapture() override;
42
43
bool
isReadyForCapture()
const
override;
44
45
AVCaptureStillImageOutput *stillImageOutput()
const
{
return
m_stillImageOutput;}
46
47
int
doCapture(
const
QString &fileName);
48
int
capture(
const
QString &fileName) override;
49
int
captureToBuffer() override;
50
51
QImageEncoderSettings imageSettings()
const
override;
52
void
setImageSettings(
const
QImageEncoderSettings &settings) override;
53
bool
applySettings();
54
55
void
setCaptureSession(QPlatformMediaCaptureSession *session);
56
57
private
Q_SLOTS:
58
void
updateCaptureConnection();
59
void
updateReadyStatus();
60
void
onNewViewfinderFrame(
const
QVideoFrame &frame);
61
void
onCameraChanged();
62
63
private
:
64
bool
videoCaptureDeviceIsValid()
const
;
65
66
AVFCameraService *m_service =
nullptr
;
67
AVFCameraSession *m_session =
nullptr
;
68
AVFCamera *m_cameraControl =
nullptr
;
69
bool
m_ready =
false
;
70
int
m_lastCaptureId = 0;
71
AVCaptureStillImageOutput *m_stillImageOutput;
72
AVCaptureConnection *m_videoConnection =
nullptr
;
73
74
QMutex m_requestsMutex;
75
std::queue<CaptureRequest> m_captureRequests;
76
QImageEncoderSettings m_settings;
77
};
78
79
QT_END_NAMESPACE
80
81
#
endif
AVFCameraService
Definition
avfcameraservice_p.h:33
AVFCameraService::setAudioInput
void setAudioInput(QPlatformAudioInput *) override
Definition
avfcameraservice.mm:98
AVFCameraService::audioOutputDestroyed
void audioOutputDestroyed()
Definition
avfcameraservice_p.h:64
AVFCameraService::setImageCapture
void setImageCapture(QPlatformImageCapture *imageCapture) override
Definition
avfcameraservice.mm:63
AVFCameraService::setAudioOutputMuted
void setAudioOutputMuted(bool muted)
Definition
avfcameraservice.mm:154
AVFCameraService::mediaRecorder
QPlatformMediaRecorder * mediaRecorder() override
Definition
avfcameraservice.mm:77
AVFCameraService::setAudioOutput
void setAudioOutput(QPlatformAudioOutput *) override
Definition
avfcameraservice.mm:116
AVFCameraService::audioOutputChanged
void audioOutputChanged()
Definition
avfcameraservice.mm:139
AVFCameraService::setVideoPreview
void setVideoPreview(QVideoSink *sink) override
Definition
avfcameraservice.mm:164
AVFCameraService::setCamera
void setCamera(QPlatformCamera *camera) override
Definition
avfcameraservice.mm:38
AVFCameraService::setMediaRecorder
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
Definition
avfcameraservice.mm:82
AVFCameraService::setAudioInputMuted
void setAudioInputMuted(bool muted)
Definition
avfcameraservice.mm:144
AVFCameraService::~AVFCameraService
~AVFCameraService() override
Definition
avfcameraservice.mm:27
AVFCameraService::setAudioOutputVolume
void setAudioOutputVolume(float volume)
Definition
avfcameraservice.mm:159
AVFCameraService::imageCapture
QPlatformImageCapture * imageCapture() override
Definition
avfcameraservice.mm:58
AVFCameraService::camera
QPlatformCamera * camera() override
Definition
avfcameraservice.mm:33
AVFCameraService::setAudioInputVolume
void setAudioInputVolume(float volume)
Definition
avfcameraservice.mm:149
AVFCameraSession::updateAudioInput
void updateAudioInput()
Definition
avfcamerasession.mm:446
AVFCameraSession::setAudioOutputMuted
void setAudioOutputMuted(bool muted)
Definition
avfcamerasession.mm:247
AVFCameraSession::setAudioInputVolume
void setAudioInputVolume(float volume)
Definition
avfcamerasession.mm:217
AVFCameraSession::setVideoSink
void setVideoSink(QVideoSink *sink)
Definition
avfcamerasession.mm:409
AVFCameraSession::updateAudioOutput
void updateAudioOutput()
Definition
avfcamerasession.mm:469
AVFCameraSession::setAudioOutputVolume
void setAudioOutputVolume(float volume)
Definition
avfcamerasession.mm:241
AVFCameraSession::setAudioInputMuted
void setAudioInputMuted(bool muted)
Definition
avfcamerasession.mm:235
AVFCamera
Definition
avfcamera_p.h:27
AVFMediaEncoder
Definition
avfmediaencoder_p.h:37
qtmultimedia
src
plugins
multimedia
darwin
camera
avfimagecapture_p.h
Generated on
for Qt by
1.18.0