4#ifndef AVFCAMERASESSION_H
5#define AVFCAMERASESSION_H
18#include <QtCore/qmutex.h>
19#include <QtMultimedia/qcamera.h>
21#include <qcameradevice.h>
24#import <AVFoundation/AVFoundation.h>
26@
class AVFCameraSessionObserver;
86 void error(
int error,
const QString &errorString);
90 void updateCameraFormat(
const QCameraFormat &format);
93 void updateVideoOutput();
95 void addAudioCapture();
97 AVCaptureDevice *createVideoCaptureDevice();
98 AVCaptureDevice *createAudioCaptureDevice();
99 void attachVideoInputDevice();
100 void attachAudioInputDevice();
101 bool checkCameraPermission();
102 bool checkMicrophonePermission();
104 bool applyImageEncoderSettings();
106 QCameraDevice m_activeCameraDevice;
107 QCameraFormat m_cameraFormat;
110 AVCaptureSession *m_captureSession;
111 AVFCameraSessionObserver *m_observer;
116 AVCaptureDeviceInput *m_videoInput =
nullptr;
117 AVCaptureDeviceInput *m_audioInput =
nullptr;
119 AVCaptureAudioDataOutput *m_audioOutput =
nullptr;
120 AVFAudioPreviewDelegate *m_audioPreviewDelegate =
nullptr;
122 bool m_active =
false;
124 float m_inputVolume = 1.0;
125 bool m_inputMuted =
false;
127 FourCharCode m_defaultCodec;
void error(int error, const QString &errorString)
void processSessionStopped()
AVCaptureDeviceInput * videoInput() const
AVCaptureSession * captureSession() const
QCameraDevice activecameraDevice() const
void setCameraFormat(const QCameraFormat &format)
AVCaptureDevice * videoCaptureDevice() const
void setAudioOutputMuted(bool muted)
QCameraFormat cameraFormat() const
~AVFCameraSession() override
void setActiveCamera(const QCameraDevice &info)
void setAudioInputVolume(float volume)
AVFCameraRenderer * videoOutput() const
AVCaptureDevice * audioCaptureDevice() const
void newViewfinderFrame(const QVideoFrame &frame)
void setVideoSink(QVideoSink *sink)
FourCharCode defaultCodec()
void processSessionStarted()
void setAudioOutputVolume(float volume)
AVCaptureDeviceInput * audioInput() const
void processRuntimeError()
void setAudioInputMuted(bool muted)
AVFAudioPreviewDelegate * audioPreviewDelegate() const
AVCaptureAudioDataOutput * audioOutput() const