4#ifndef QANDROIDCAMERA_H
5#define QANDROIDCAMERA_H
18#include <QtMultimedia/private/qplatformcamera_p.h>
20#include <QtCore/qjniobject.h>
21#include <QtCore/qobject.h>
23#include <QtMultimedia/qimagecapture.h>
25#include <QtFFmpegMediaPluginImpl/private/qffmpeghwaccel_p.h>
32class QAndroidVideoFrameFactory;
52 void setCamera(
const QCameraDevice &camera)
override;
97 bool isActivating()
const {
return m_state != State::Closed; }
99 void setState(State newState);
100 QtVideo::Rotation rotation()
const;
101 void updateCameraCharacteristics();
102 void cleanCameraCharacteristics();
105 QCameraDevice m_cameraDevice;
106 QtJniCamera2 m_jniCamera;
108 std::unique_ptr<QFFmpeg::HWAccel> m_hwAccel;
110 std::shared_ptr<QAndroidVideoFrameFactory> m_frameFactory;
111 QVideoFrameFormat::PixelFormat m_androidFramePixelFormat;
112 QList<QCamera::FlashMode> m_supportedFlashModes;
115 QList<QCamera::FocusMode> m_supportedFocusModes;
116 bool m_TorchModeSupported =
false;
117 bool m_wasActive =
false;
119 bool m_waitingForFirstFrame =
false;
void onStillPhotoCaptureFailed()
void setFocusMode(QCamera::FocusMode mode) override
void onCameraDisconnect()
void onImageCaptureFailed(QImageCapture::Error error, const QString &errMsg)
bool isTorchModeSupported(QCamera::TorchMode mode) const override
QVideoFrameFormat frameFormat() const override
QAndroidCamera(QCamera *camera)
void setFlashMode(QCamera::FlashMode mode) override
static bool registerNativeMethods()
void onCaptureSessionFailed(int reason, long frameNumber)
void zoomTo(float factor, float rate) override
~QAndroidCamera() override
void setCamera(const QCameraDevice &camera) override
void onCaptureSessionConfigured()
bool setCameraFormat(const QCameraFormat &format) override
void frameAvailable(QJniObject image, bool takePhoto=false)
bool isFlashReady() const override
bool isActive() const override
void setFocusDistance(float distance) override
void updateExif(const QString &filename)
bool isFocusModeSupported(QCamera::FocusMode focusMode) const override
bool isFlashModeSupported(QCamera::FlashMode mode) const override
std::optional< int > ffmpegHWPixelFormat() const override
void onCaptureSessionConfigureFailed()
void setActive(bool active) override
void onCameraError(int error)
void setTorchMode(QCamera::TorchMode mode) override
std::conditional_t< QT_FFMPEG_AVIO_WRITE_CONST, const uint8_t *, uint8_t * > AvioWriteBufferType
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")