summaryrefslogtreecommitdiff
path: root/src/plugins/directshow/camera/dscameraservice.cpp
diff options
context:
space:
mode:
authorChristian Stromme <christian.stromme@qt.io>2016-11-21 17:16:57 +0100
committerChristian Stromme <christian.stromme@qt.io>2018-01-22 20:50:12 +0000
commit469a18793a11b45ffa6f7ed3f873bddbae8e900d (patch)
treedde99d7ae682b3bb84b512e74e78982353f698af /src/plugins/directshow/camera/dscameraservice.cpp
parentd04483a5c13b6b5ac463f2a8d584839eab9aeede (diff)
downloadqtmultimedia-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.cpp18
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;
}