[plasma/krdp] src: VideoStream: preserve accumulated damage when coalescing progressive frames
Shouvik Kar <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 70f93c3278e688c3dc8f86c0cadc5b559119f609 by Shouvik Kar.
Committed on 20/07/2026 at 12:23.
Pushed by davidedmundson into branch 'master'.
VideoStream: preserve accumulated damage when coalescing progressive frames
queueFrame merges a dropped frame's damage into `nextFrame`, but then
appends the original `frame` — discarding the merge. Under load (frames
coalescing), the dropped frame's regions are never sent and stay stale on
the client until re-damaged.
Append `nextFrame` instead. (Also makes the move real: `frame` is a
`const &` so it was silently copied.)
M +1 -1 src/VideoStream.cpp
https://invent.kde.org/plasma/krdp/-/commit/70f93c3278e688c3dc8f86c0cadc5b559119f609
diff --git a/src/VideoStream.cpp b/src/VideoStream.cpp
index 38588a5..ce0f68e 100644
--- a/src/VideoStream.cpp
+++ b/src/VideoStream.cpp
@@ -446,7 +446,7 @@ void VideoStream::queueFrame(const KRdp::VideoFrame &frame)
}
KRdp::VideoFrame nextFrame = frame;
nextFrame.damage += lastDamage;
- d->frameQueue.append(std::move(frame));
+ d->frameQueue.append(std::move(nextFrame));
}
}