diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-10-23 17:45:31 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-11-04 15:03:51 +0000 |
commit | 9ebf1265da2c23ec86201d7f521a9352e0762944 (patch) | |
tree | b53d3d17532a8333a5dc543df6437e5c926ace87 /src/plugins/avfoundation | |
parent | 14adf0f24c281b46640fd43f73d8811f9d87105d (diff) |
AVFoundation: don't automatically rotate camera captures.
We shouldn't do this automatically, as different kind of orientations
might be wanted (sensor, device, UI). The default should be sensor
orientation (no rotation applied).
We should add an API to QCamera to enable automatic orientation of
captured images.
Change-Id: I56fff7f0c4aaaee37eb6ae2628e27073b4946b66
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src/plugins/avfoundation')
-rw-r--r-- | src/plugins/avfoundation/camera/avfimagecapturecontrol.h | 4 | ||||
-rw-r--r-- | src/plugins/avfoundation/camera/avfimagecapturecontrol.mm | 12 |
2 files changed, 4 insertions, 12 deletions
diff --git a/src/plugins/avfoundation/camera/avfimagecapturecontrol.h b/src/plugins/avfoundation/camera/avfimagecapturecontrol.h index 1fee8164c..dd5e8e8bb 100644 --- a/src/plugins/avfoundation/camera/avfimagecapturecontrol.h +++ b/src/plugins/avfoundation/camera/avfimagecapturecontrol.h @@ -39,7 +39,6 @@ #include <QtCore/qqueue.h> #include <QtCore/qsemaphore.h> #include <QtMultimedia/qcameraimagecapturecontrol.h> -#include <private/qvideooutputorientationhandler_p.h> #include "avfcamerasession.h" #include "avfstoragelocation.h" @@ -72,7 +71,7 @@ private Q_SLOTS: void onNewViewfinderFrame(const QVideoFrame &frame); private: - void makeCapturePreview(CaptureRequest request, const QVideoFrame &frame, AVFCameraInfo cameraInfo, int screenOrientation); + void makeCapturePreview(CaptureRequest request, const QVideoFrame &frame, int rotation); AVFCameraSession *m_session; AVFCameraControl *m_cameraControl; @@ -81,7 +80,6 @@ private: AVCaptureStillImageOutput *m_stillImageOutput; AVCaptureConnection *m_videoConnection; AVFStorageLocation m_storageLocation; - QVideoOutputOrientationHandler m_orientationHandler; QMutex m_requestsMutex; QQueue<CaptureRequest> m_captureRequests; diff --git a/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm b/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm index 4703f8727..edaaf8ce3 100644 --- a/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm +++ b/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm @@ -180,21 +180,15 @@ void AVFImageCaptureControl::onNewViewfinderFrame(const QVideoFrame &frame) QtConcurrent::run(this, &AVFImageCaptureControl::makeCapturePreview, request, frame, - m_session->activeCameraInfo(), - m_orientationHandler.currentOrientation()); + 0 /* rotation */); } void AVFImageCaptureControl::makeCapturePreview(CaptureRequest request, const QVideoFrame &frame, - AVFCameraInfo cameraInfo, - int screenOrientation) + int rotation) { QTransform transform; - screenOrientation = 360 - screenOrientation; - if (cameraInfo.position == QCamera::FrontFace) - transform.rotate((screenOrientation + cameraInfo.orientation) % 360); - else - transform.rotate((screenOrientation + (360 - cameraInfo.orientation)) % 360); + transform.rotate(rotation); Q_EMIT imageCaptured(request.captureId, qt_imageFromVideoFrame(frame).transformed(transform)); |