summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Moskal <bartlomiej.moskal@qt.io>2024-03-14 13:31:05 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-03-19 13:37:01 +0000
commit2e2dd0020e2c7e92b7c85774c3a834e1d9d7a49c (patch)
tree6513df05257c42d034670fd4ed666ae9ed3d160f
parentfe0acbf5dacf68894d17869badc0268c6db076a8 (diff)
Android-ffmpeg: Clean up zoom value if it doesn't fit
In case of switching the camera device, it may happen that the currently set zoom will be greater than the maximum possible value. In this case, the zoom value need to be cleaned up. Pick-to: 6.5 Fixes: QTBUG-122968 Change-Id: I3fd8842aa3c9e4da4dbd28b391cf4d5d63067858 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> (cherry picked from commit 7346e6e4d3afa45454031f13c4508ab3414f4a96) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 81e34509447c9d6c3497c85d0b51d1086c5b93fc)
-rw-r--r--src/plugins/multimedia/ffmpeg/qandroidcamera.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp b/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp
index d9412a0f7..09a9cd945 100644
--- a/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp
+++ b/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp
@@ -359,6 +359,9 @@ void QAndroidCamera::updateCameraCharacteristics()
const float maxZoom = deviceManager.callMethod<jfloat>(
"getMaxZoom", QJniObject::fromString(m_cameraDevice.id()).object<jstring>());
maximumZoomFactorChanged(maxZoom);
+ if (maxZoom < zoomFactor()) {
+ zoomTo(1.0, -1.0);
+ }
m_TorchModeSupported = deviceManager.callMethod<jboolean>(
"isTorchModeSupported", QJniObject::fromString(m_cameraDevice.id()).object<jstring>());
@@ -384,6 +387,9 @@ void QAndroidCamera::updateCameraCharacteristics()
void QAndroidCamera::cleanCameraCharacteristics()
{
maximumZoomFactorChanged(1.0);
+ if (zoomFactor() != 1.0) {
+ zoomTo(1.0, -1.0);
+ }
if (torchMode() != QCamera::TorchOff) {
setTorchMode(QCamera::TorchOff);
}