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>
48 void setCamera(
const QCameraDevice &camera)
override;
93 bool isActivating()
const {
return m_state != State::Closed; }
95 void setState(State newState);
96 QtVideo::Rotation rotation()
const;
97 void updateCameraCharacteristics();
98 void cleanCameraCharacteristics();
101 QCameraDevice m_cameraDevice;
102 QJniObject m_jniCamera;
104 std::unique_ptr<QFFmpeg::HWAccel> m_hwAccel;
106 std::shared_ptr<QAndroidVideoFrameFactory> m_frameFactory;
107 QVideoFrameFormat::PixelFormat m_androidFramePixelFormat;
108 QList<QCamera::FlashMode> m_supportedFlashModes;
111 QList<QCamera::FocusMode> m_supportedFocusModes;
112 bool m_TorchModeSupported =
false;
113 bool m_wasActive =
false;
115 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