diff options
Diffstat (limited to 'src/plugins/qnx/camera/bbcamerasession.cpp')
-rw-r--r-- | src/plugins/qnx/camera/bbcamerasession.cpp | 11 |
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()); |