From b04032d6f712d0f3f68ae29307d95c8e35c56af1 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 2 Nov 2025 15:02:54 +0100 Subject: [PATCH] Simplify capture invalidation Remove the unnecessary requestInvalidate() indirection. Use a single invalidate() method instead. --- .../com/genymobile/scrcpy/control/Controller.java | 2 +- .../com/genymobile/scrcpy/video/CameraCapture.java | 5 ----- .../genymobile/scrcpy/video/NewDisplayCapture.java | 5 ----- .../com/genymobile/scrcpy/video/ScreenCapture.java | 5 ----- .../com/genymobile/scrcpy/video/SurfaceCapture.java | 11 ++--------- 5 files changed, 3 insertions(+), 25 deletions(-) diff --git a/server/src/main/java/com/genymobile/scrcpy/control/Controller.java b/server/src/main/java/com/genymobile/scrcpy/control/Controller.java index b4a8e3ca..4e3b6885 100644 --- a/server/src/main/java/com/genymobile/scrcpy/control/Controller.java +++ b/server/src/main/java/com/genymobile/scrcpy/control/Controller.java @@ -751,7 +751,7 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener { private void resetVideo() { if (surfaceCapture != null) { Ln.i("Video capture reset"); - surfaceCapture.requestInvalidate(); + surfaceCapture.invalidate(); } } } diff --git a/server/src/main/java/com/genymobile/scrcpy/video/CameraCapture.java b/server/src/main/java/com/genymobile/scrcpy/video/CameraCapture.java index 0e147cb7..2b7c8099 100644 --- a/server/src/main/java/com/genymobile/scrcpy/video/CameraCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/video/CameraCapture.java @@ -418,9 +418,4 @@ public class CameraCapture extends SurfaceCapture { public boolean isClosed() { return disconnected.get(); } - - @Override - public void requestInvalidate() { - // do nothing (the user could not request a reset anyway for now, since there is no controller for camera mirroring) - } } diff --git a/server/src/main/java/com/genymobile/scrcpy/video/NewDisplayCapture.java b/server/src/main/java/com/genymobile/scrcpy/video/NewDisplayCapture.java index e933f60e..cecd2110 100644 --- a/server/src/main/java/com/genymobile/scrcpy/video/NewDisplayCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/video/NewDisplayCapture.java @@ -261,9 +261,4 @@ public class NewDisplayCapture extends SurfaceCapture { int num = size.getMax(); return initialDpi * num / den; } - - @Override - public void requestInvalidate() { - invalidate(); - } } diff --git a/server/src/main/java/com/genymobile/scrcpy/video/ScreenCapture.java b/server/src/main/java/com/genymobile/scrcpy/video/ScreenCapture.java index 5f4e1803..085ff2e5 100644 --- a/server/src/main/java/com/genymobile/scrcpy/video/ScreenCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/video/ScreenCapture.java @@ -211,9 +211,4 @@ public class ScreenCapture extends SurfaceCapture { SurfaceControl.closeTransaction(); } } - - @Override - public void requestInvalidate() { - invalidate(); - } } diff --git a/server/src/main/java/com/genymobile/scrcpy/video/SurfaceCapture.java b/server/src/main/java/com/genymobile/scrcpy/video/SurfaceCapture.java index 39d3bdb8..3144dc51 100644 --- a/server/src/main/java/com/genymobile/scrcpy/video/SurfaceCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/video/SurfaceCapture.java @@ -19,9 +19,9 @@ public abstract class SurfaceCapture { private CaptureListener listener; /** - * Notify the listener that the capture has been invalidated (for example, because its size changed). + * Notify the listener that the capture has been invalidated (for example, because its size changed, or due to a manual user request). */ - protected void invalidate() { + public void invalidate() { listener.onInvalidated(); } @@ -86,11 +86,4 @@ public abstract class SurfaceCapture { public boolean isClosed() { return false; } - - /** - * Manually request to invalidate (typically a user request). - *

- * The capture implementation is free to ignore the request and do nothing. - */ - public abstract void requestInvalidate(); }