diff options
author | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2024-03-14 13:31:05 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-03-19 13:37:01 +0000 |
commit | 2e2dd0020e2c7e92b7c85774c3a834e1d9d7a49c (patch) | |
tree | 6513df05257c42d034670fd4ed666ae9ed3d160f | |
parent | fe0acbf5dacf68894d17869badc0268c6db076a8 (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.cpp | 6 |
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); } |