From f2f9bb66ca33176cc931c679f8c379ede5b53469 Mon Sep 17 00:00:00 2001 From: Joe Downing Date: Fri, 9 Apr 2021 12:34:35 -0700 Subject: [PATCH] Fixing a buffer copy issue in DesktopFrame This CL fixes a buffer copying issue introduced in this CL: https://webrtc-review.googlesource.com/c/src/+/196485 In the BasicDesktopFrame::CopyOf function, the src and dst params were swapped. For me this manifested as a missing cursor when using Chrome Remote Desktop. I don't know of any other bugs this caused but I have to assume it affects all callers of the function given that the copy will never occur. Bug: chromium:1197210 Change-Id: I076bffbad1d658b1c6f4b0dffea17d339c867bef Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214840 Commit-Queue: Joe Downing Commit-Queue: Jamie Walch Reviewed-by: Jamie Walch Cr-Commit-Position: refs/heads/master@{#33672} --- modules/desktop_capture/desktop_frame.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/desktop_capture/desktop_frame.cc b/modules/desktop_capture/desktop_frame.cc index 1d3e64892f..9e4a899fd2 100644 --- a/modules/desktop_capture/desktop_frame.cc +++ b/modules/desktop_capture/desktop_frame.cc @@ -157,8 +157,8 @@ BasicDesktopFrame::~BasicDesktopFrame() { // static DesktopFrame* BasicDesktopFrame::CopyOf(const DesktopFrame& frame) { DesktopFrame* result = new BasicDesktopFrame(frame.size()); - libyuv::CopyPlane(result->data(), result->stride(), frame.data(), - frame.stride(), frame.size().width() * kBytesPerPixel, + libyuv::CopyPlane(frame.data(), frame.stride(), result->data(), + result->stride(), frame.size().width() * kBytesPerPixel, frame.size().height()); result->CopyFrameInfoFrom(frame); return result;