From 262506c733ba5fb63ea08ef1a7cb7a667a741ccf Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Fri, 21 Jan 2022 21:50:31 +0100 Subject: [PATCH] Limit retry-on-error to IllegalStateException MediaCodec errors always trigger IllegalStateException or a subtype (like MediaCodec.CodecException). In practice, this avoids to retry if the error is caused by an IOException when writing the video packet to the socket. --- server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java index 06f06a9d..e4e87c72 100644 --- a/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java +++ b/server/src/main/java/com/genymobile/scrcpy/ScreenEncoder.java @@ -99,7 +99,7 @@ public class ScreenEncoder implements Device.RotationListener { alive = encode(codec, fd); // do not call stop() on exception, it would trigger an IllegalStateException codec.stop(); - } catch (Exception e) { + } catch (IllegalStateException e) { Ln.e("Encoding error: " + e.getClass().getName() + ": " + e.getMessage()); if (!downsizeOnError || firstFrameSent) { // Fail immediately