summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/winrt/qwinrtcameracontrol.cpp2
-rw-r--r--src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp6
-rw-r--r--src/plugins/winrt/qwinrtcameravideorenderercontrol.h3
3 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp
index 0eec4a2ca..164a958ff 100644
--- a/src/plugins/winrt/qwinrtcameracontrol.cpp
+++ b/src/plugins/winrt/qwinrtcameracontrol.cpp
@@ -583,6 +583,8 @@ QWinRTCameraControl::QWinRTCameraControl(QObject *parent)
connect(d->videoRenderer, &QWinRTCameraVideoRendererControl::bufferRequested,
this, &QWinRTCameraControl::onBufferRequested);
d->videoDeviceSelector = new QWinRTVideoDeviceSelectorControl(this);
+ connect(d->videoDeviceSelector, QOverload<int>::of(&QWinRTVideoDeviceSelectorControl::selectedDeviceChanged),
+ d->videoRenderer, &QWinRTCameraVideoRendererControl::resetSampleFormat);
d->imageCaptureControl = new QWinRTCameraImageCaptureControl(this);
d->imageEncoderControl = new QWinRTImageEncoderControl(this);
d->cameraFlashControl = new QWinRTCameraFlashControl(this);
diff --git a/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp b/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp
index 03d107ae8..6c5e3dbf9 100644
--- a/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp
+++ b/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp
@@ -426,4 +426,10 @@ void QWinRTCameraVideoRendererControl::decrementProbe()
--d->videoProbesCounter;
}
+void QWinRTCameraVideoRendererControl::resetSampleFormat()
+{
+ Q_D(QWinRTCameraVideoRendererControl);
+ d->cameraSampleformat = QVideoFrame::Format_User;
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/winrt/qwinrtcameravideorenderercontrol.h b/src/plugins/winrt/qwinrtcameravideorenderercontrol.h
index eeda83d52..2f98e70f4 100644
--- a/src/plugins/winrt/qwinrtcameravideorenderercontrol.h
+++ b/src/plugins/winrt/qwinrtcameravideorenderercontrol.h
@@ -69,6 +69,9 @@ signals:
void bufferRequested();
void videoFrameProbed(const QVideoFrame &frame);
+public slots:
+ void resetSampleFormat();
+
private:
QScopedPointer<QWinRTCameraVideoRendererControlPrivate> d_ptr;
Q_DECLARE_PRIVATE(QWinRTCameraVideoRendererControl)