diff options
-rw-r--r-- | src/plugins/winrt/qwinrtcameracontrol.cpp | 2 | ||||
-rw-r--r-- | src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp | 6 | ||||
-rw-r--r-- | src/plugins/winrt/qwinrtcameravideorenderercontrol.h | 3 |
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) |