diff options
Diffstat (limited to 'src/plugins/avfoundation/camera/avfcamerasession.mm')
-rw-r--r-- | src/plugins/avfoundation/camera/avfcamerasession.mm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/avfoundation/camera/avfcamerasession.mm b/src/plugins/avfoundation/camera/avfcamerasession.mm index e7e886488..5570aa83b 100644 --- a/src/plugins/avfoundation/camera/avfcamerasession.mm +++ b/src/plugins/avfoundation/camera/avfcamerasession.mm @@ -39,6 +39,7 @@ #include "avfcameradevicecontrol.h" #include "avfaudioinputselectorcontrol.h" #include "avfmediavideoprobecontrol.h" +#include "avfcameraviewfindersettingscontrol.h" #include <CoreFoundation/CoreFoundation.h> #include <Foundation/Foundation.h> @@ -275,6 +276,7 @@ void AVFCameraSession::setState(QCamera::State newState) Q_EMIT readyToConfigureConnections(); [m_captureSession commitConfiguration]; [m_captureSession startRunning]; + applyViewfinderSettings(); } if (oldState == QCamera::ActiveState) { @@ -364,6 +366,15 @@ void AVFCameraSession::attachInputDevices() } } +void AVFCameraSession::applyViewfinderSettings() +{ + if (AVFCameraViewfinderSettingsControl2 *control = m_service->viewfinderSettingsControl2()) { + QCameraViewfinderSettings settings(control->requestedSettings()); + // TODO: Adjust the resolution (from image encoder control), updating 'settings'. + control->setViewfinderSettings(settings); + } +} + void AVFCameraSession::addProbe(AVFMediaVideoProbeControl *probe) { m_videoProbesMutex.lock(); |