summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/camera/bbcamerasession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qnx/camera/bbcamerasession.cpp')
-rw-r--r--src/plugins/qnx/camera/bbcamerasession.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/qnx/camera/bbcamerasession.cpp b/src/plugins/qnx/camera/bbcamerasession.cpp
index 618aca533..c5309b045 100644
--- a/src/plugins/qnx/camera/bbcamerasession.cpp
+++ b/src/plugins/qnx/camera/bbcamerasession.cpp
@@ -772,11 +772,16 @@ void BbCameraSession::viewfinderFrameGrabbed(const QImage &image)
{
QTransform transform;
+ // subtract out the native rotation
transform.rotate(m_nativeCameraOrientation);
+ // subtract out the current device orientation
+ if (m_device == cameraIdentifierRear())
+ transform.rotate(360 - m_orientationHandler->viewfinderOrientation());
+ else
+ transform.rotate(m_orientationHandler->viewfinderOrientation());
+
QImage frame = image.copy().transformed(transform);
- if (m_device == cameraIdentifierFront())
- frame = frame.mirrored(true, false);
QMutexLocker locker(&m_surfaceMutex);
if (m_surface) {
@@ -896,7 +901,7 @@ bool BbCameraSession::startViewFinder()
return false;
}
- const int angle = m_orientationHandler->orientation();
+ const int angle = m_orientationHandler->viewfinderOrientation();
const QSize rotatedSize = ((angle == 0 || angle == 180) ? viewfinderResolution
: viewfinderResolution.transposed());