50 QVideoFrameFormat::ColorRange colorRange)
const override;
60 void clearAvCaptureSessionInputDevice();
61 [[
nodiscard]] q23::expected<
void, QString> setupAvCaptureSessionInputDevice(AVCaptureDevice *);
62 void clearAvCaptureVideoDataOutput();
63 [[
nodiscard]] q23::expected<
void, QString> setupAvCaptureVideoDataOutput(AVCaptureDevice *);
64 [[
nodiscard]] q23::expected<
void, QString> tryApplyFormatToCaptureSession(
66 AVCaptureDeviceFormat *,
67 const QCameraFormat &);
68 void clearRotationTracking();
69 void setupRotationTracking(AVCaptureDevice *);
70 void clearCaptureSessionConfiguration();
71 [[
nodiscard]] q23::expected<
void, QString> tryConfigureCaptureSession(
72 const QCameraDevice &,
73 const QCameraFormat &);
74 [[
nodiscard]] q23::expected<
void, QString> tryConfigureCaptureSession(
76 const QCameraFormat &);
77 [[
nodiscard]] q23::expected<
void, QString> tryConfigureCaptureSession(
79 AVCaptureDeviceFormat *,
80 const QCameraFormat &);
82 [[
nodiscard]] QSize adjustedResolution(
const QCameraFormat& format)
const;
84 [[
nodiscard]]
int getCurrentRotationAngleDegrees()
const;
86 QMediaCaptureSession *m_qMediaCaptureSession =
nullptr;
87 AVCaptureSession *m_avCaptureSession =
nullptr;
88 AVCaptureDeviceInput *m_avCaptureDeviceVideoInput =
nullptr;
89 AVCaptureVideoDataOutput *m_avCaptureVideoDataOutput =
nullptr;
90 QAVFSampleBufferDelegate *m_qAvfSampleBufferDelegate =
nullptr;
95 uint32_t m_cvPixelFormat = 0;
97 std::optional<QFFmpeg::AvfCameraRotationTracker> m_qAvfCameraRotationTracker;
99 AVFScopedPointer<dispatch_queue_t> m_delegateQueue;