summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp')
-rw-r--r--src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp b/src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp
index 551df7965..f9efaea8a 100644
--- a/src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp
+++ b/src/plugins/android/src/mediacapture/qandroidcameracontrol.cpp
@@ -304,4 +304,40 @@ void QAndroidCameraControl::setExposureLockStatus(QCamera::LockStatus status, QC
emit lockStatusChanged(QCamera::LockExposure, m_exposureLockStatus, reason);
}
+QList<QCameraViewfinderSettings> QAndroidCameraControl::supportedViewfinderSettings() const
+{
+ QList<QCameraViewfinderSettings> viewfinderSettings;
+
+ const QList<QSize> previewSizes = m_cameraSession->getSupportedPreviewSizes();
+ const QList<QVideoFrame::PixelFormat> pixelFormats = m_cameraSession->getSupportedPixelFormats();
+ const QList<AndroidCamera::FpsRange> fpsRanges = m_cameraSession->getSupportedPreviewFpsRange();
+
+ viewfinderSettings.reserve(previewSizes.size() * pixelFormats.size() * fpsRanges.size());
+
+ for (const QSize& size : previewSizes) {
+ for (QVideoFrame::PixelFormat pixelFormat : pixelFormats) {
+ for (const AndroidCamera::FpsRange& fpsRange : fpsRanges) {
+ QCameraViewfinderSettings s;
+ s.setResolution(size);
+ s.setPixelAspectRatio(QSize(1, 1));
+ s.setPixelFormat(pixelFormat);
+ s.setMinimumFrameRate(fpsRange.getMinReal());
+ s.setMaximumFrameRate(fpsRange.getMaxReal());
+ viewfinderSettings << s;
+ }
+ }
+ }
+ return viewfinderSettings;
+}
+
+QCameraViewfinderSettings QAndroidCameraControl::viewfinderSettings() const
+{
+ return m_cameraSession->viewfinderSettings();
+}
+
+void QAndroidCameraControl::setViewfinderSettings(const QCameraViewfinderSettings &settings)
+{
+ m_cameraSession->setViewfinderSettings(settings);
+}
+
QT_END_NAMESPACE