summaryrefslogtreecommitdiffstats
path: root/src/plugins/winrt/qwinrtcameraservice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/winrt/qwinrtcameraservice.cpp')
-rw-r--r--src/plugins/winrt/qwinrtcameraservice.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/winrt/qwinrtcameraservice.cpp b/src/plugins/winrt/qwinrtcameraservice.cpp
index a4d292242..977acdcab 100644
--- a/src/plugins/winrt/qwinrtcameraservice.cpp
+++ b/src/plugins/winrt/qwinrtcameraservice.cpp
@@ -37,6 +37,8 @@
#include "qwinrtcameraservice.h"
#include "qwinrtcameracontrol.h"
#include "qwinrtcamerainfocontrol.h"
+#include "qwinrtvideoprobecontrol.h"
+#include "qwinrtcameravideorenderercontrol.h"
#include <QtCore/QCoreApplication>
#include <QtCore/qfunctions_winrt.h>
@@ -47,6 +49,7 @@
#include <QtMultimedia/QImageEncoderControl>
#include <QtMultimedia/QCameraFocusControl>
#include <QtMultimedia/QCameraLocksControl>
+#include <QtMultimedia/QMediaVideoProbeControl>
QT_BEGIN_NAMESPACE
@@ -98,12 +101,17 @@ QMediaControl *QWinRTCameraService::requestControl(const char *name)
if (qstrcmp(name, QCameraLocksControl_iid) == 0)
return d->cameraControl->cameraLocksControl();
+ if (qstrcmp(name, QMediaVideoProbeControl_iid) == 0)
+ return new QWinRTVideoProbeControl(qobject_cast<QWinRTCameraVideoRendererControl *>(d->cameraControl->videoRenderer()));
+
return nullptr;
}
void QWinRTCameraService::releaseControl(QMediaControl *control)
{
- Q_UNUSED(control);
+ Q_ASSERT(control);
+ if (QWinRTVideoProbeControl *videoProbe = qobject_cast<QWinRTVideoProbeControl *>(control))
+ videoProbe->deleteLater();
}
QT_END_NAMESPACE