summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp')
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp
index 58ffd31afd..879d312341 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp
@@ -251,6 +251,8 @@ bool QVsp2BlendingDevice::blend(int outputDmabufFd)
if (!m_wpfOutput->dequeueBuffer()) {
qWarning() << "Vsp2: Failed to dequeue blending output buffer";
+ if (!streamOff())
+ qWarning() << "Vsp2: Failed to stop streaming when recovering after a broken blend.";
return false;
}
@@ -284,19 +286,12 @@ bool QVsp2BlendingDevice::streamOn()
bool QVsp2BlendingDevice::streamOff()
{
- if (!m_wpfOutput->streamOff()) {
- //TODO: perhaps it's better to try to continue with the other inputs?
- return false;
- }
-
+ bool succeeded = m_wpfOutput->streamOff();
for (auto &input : m_inputs) {
- if (input.enabled) {
- if (!input.rpfInput->streamOff())
- return false;
- }
+ if (input.enabled)
+ succeeded &= input.rpfInput->streamOff();
}
-
- return true;
+ return succeeded;
}
bool QVsp2BlendingDevice::setInputFormat(int i, const QRect &bufferGeometry, uint pixelFormat, uint bytesPerLine)