diff options
author | Christian Stromme <christian.stromme@qt.io> | 2016-11-21 17:16:57 +0100 |
---|---|---|
committer | Christian Stromme <christian.stromme@qt.io> | 2018-01-22 20:50:12 +0000 |
commit | 469a18793a11b45ffa6f7ed3f873bddbae8e900d (patch) | |
tree | dde99d7ae682b3bb84b512e74e78982353f698af /src/plugins/directshow/camera/dscameraservice.cpp | |
parent | d04483a5c13b6b5ac463f2a8d584839eab9aeede (diff) | |
download | qtmultimedia-469a18793a11b45ffa6f7ed3f873bddbae8e900d.tar.gz |
DirectShow: Add exposure control
Makes it possible to manually control the shutter speed and/or the
aperture on cameras that supports it.
[ChangeLog][DirectShow] Added support for manual camera exposure control
Change-Id: I340964f899fec365df870834b230c1d743ceb2e8
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/plugins/directshow/camera/dscameraservice.cpp')
-rw-r--r-- | src/plugins/directshow/camera/dscameraservice.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp index 836f1aaa5..c11111be1 100644 --- a/src/plugins/directshow/camera/dscameraservice.cpp +++ b/src/plugins/directshow/camera/dscameraservice.cpp @@ -48,19 +48,21 @@ #include "dsimagecapturecontrol.h" #include "dscameraviewfindersettingscontrol.h" #include "dscameraimageprocessingcontrol.h" +#include "directshowcameraexposurecontrol.h" QT_BEGIN_NAMESPACE DSCameraService::DSCameraService(QObject *parent): QMediaService(parent) + , m_session(new DSCameraSession(this)) + , m_control(new DSCameraControl(m_session)) + , m_videoDevice(new DSVideoDeviceControl(m_session)) , m_videoRenderer(0) + , m_imageCapture(new DSImageCaptureControl(m_session)) + , m_viewfinderSettings(new DSCameraViewfinderSettingsControl(m_session)) + , m_imageProcessingControl(new DSCameraImageProcessingControl(m_session)) + , m_exposureControl(new DirectShowCameraExposureControl(m_session)) { - m_session = new DSCameraSession(this); - m_control = new DSCameraControl(m_session); - m_videoDevice = new DSVideoDeviceControl(m_session); - m_imageCapture = new DSImageCaptureControl(m_session); - m_viewfinderSettings = new DSCameraViewfinderSettingsControl(m_session); - m_imageProcessingControl = new DSCameraImageProcessingControl(m_session); } DSCameraService::~DSCameraService() @@ -72,6 +74,7 @@ DSCameraService::~DSCameraService() delete m_videoRenderer; delete m_imageCapture; delete m_session; + delete m_exposureControl; } QMediaControl* DSCameraService::requestControl(const char *name) @@ -98,6 +101,9 @@ QMediaControl* DSCameraService::requestControl(const char *name) if (qstrcmp(name, QCameraImageProcessingControl_iid) == 0) return m_imageProcessingControl; + if (qstrcmp(name, QCameraExposureControl_iid) == 0) + return m_exposureControl; + return 0; } |