4#ifndef AVFCAMERASESSION_H
5#define AVFCAMERASESSION_H
18#include <QtMultimedia/qcamera.h>
19#include <QtMultimedia/qcameradevice.h>
20#include <QtMultimedia/qvideoframe.h>
21#include <QtCore/qmutex.h>
23#include <camera/avfaudiopreviewdelegate_p.h>
25#import <AVFoundation/AVFoundation.h>
27@
class AVFCameraSessionObserver;
87 void error(
int error,
const QString &errorString);
91 void updateCameraFormat(
const QCameraFormat &format);
94 void updateVideoOutput();
96 void addAudioCapture();
98 AVCaptureDevice *createVideoCaptureDevice();
99 AVCaptureDevice *createAudioCaptureDevice();
100 void attachVideoInputDevice();
101 void attachAudioInputDevice();
102 bool checkCameraPermission();
103 bool checkMicrophonePermission();
105 bool applyImageEncoderSettings();
107 QCameraDevice m_activeCameraDevice;
108 QCameraFormat m_cameraFormat;
111 AVCaptureSession *m_captureSession;
112 AVFCameraSessionObserver *m_observer;
117 AVCaptureDeviceInput *m_videoInput =
nullptr;
118 AVCaptureDeviceInput *m_audioInput =
nullptr;
120 AVCaptureAudioDataOutput *m_audioOutput =
nullptr;
121 AVFAudioPreviewDelegate *m_audioPreviewDelegate =
nullptr;
123 bool m_active =
false;
125 float m_inputVolume = 1.0;
126 bool m_inputMuted =
false;
128 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