From b4fca6e573638ef2a08f870e8ef2b75369f7b309 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Fri, 20 May 2022 04:46:39 -0400
Subject: [PATCH] directrenderer: update video surface on update

Else, changing the resolution is not taken into account correctly.
This is a follow-up of daemon sink's refactoring

Change-Id: If70d6f0ed40fa9c0a343b8cbbacf7461f3288d01
---
 src/directrenderer.cpp | 2 ++
 src/shmrenderer.cpp    | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/directrenderer.cpp b/src/directrenderer.cpp
index a207cf76..b692d41e 100644
--- a/src/directrenderer.cpp
+++ b/src/directrenderer.cpp
@@ -115,9 +115,11 @@ DirectRenderer::stopRendering()
 void
 DirectRenderer::update(const QSize& res, const QString&)
 {
+    stopRendering();
     Renderer::update(res);
 
     VideoManager::instance().registerSinkTarget(id(), pimpl_->target);
+    startRendering();
 }
 
 Frame
diff --git a/src/shmrenderer.cpp b/src/shmrenderer.cpp
index ab7f9e17..8bbd2947 100644
--- a/src/shmrenderer.cpp
+++ b/src/shmrenderer.cpp
@@ -245,6 +245,7 @@ ShmRenderer::~ShmRenderer()
 void
 ShmRenderer::update(const QSize& res, const QString& shmPath)
 {
+    Q_EMIT stopped();
     Renderer::update(res);
 
     if (!pimpl_->thread.isRunning())
@@ -252,6 +253,7 @@ ShmRenderer::update(const QSize& res, const QString& shmPath)
 
     pimpl_->path = shmPath;
     VideoManager::instance().startShmSink(id(), true);
+    Q_EMIT started();
 }
 
 Frame
-- 
GitLab