From 0b4c94056c6b1a1f319359ca8de56cdb736fa57b Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sat, 10 May 2025 10:31:53 +0200 Subject: [PATCH] Rename "codec meta" to "stream meta" The stream metadata will contain both: - the codec id at the start of the stream - the session metadata (video width and height) at the start of every "session" (typically on rotation) --- doc/develop.md | 5 ++--- .../src/main/java/com/genymobile/scrcpy/Options.java | 12 ++++++------ .../src/main/java/com/genymobile/scrcpy/Server.java | 4 ++-- .../java/com/genymobile/scrcpy/device/Streamer.java | 8 ++++---- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/doc/develop.md b/doc/develop.md index 21949ea6..002ec4b9 100644 --- a/doc/develop.md +++ b/doc/develop.md @@ -409,12 +409,11 @@ with any client which uses the same protocol. For simplicity, some [server-specific options] have been added to produce raw streams easily: - - `send_device_meta=false`: disable the device metata (in practice, the device + - `send_device_meta=false`: disable device metadata (in practice, the device name) sent on the _first_ socket - `send_frame_meta=false`: disable the 12-byte header for each packet - `send_dummy_byte`: disable the dummy byte sent on forward connections - - `send_codec_meta`: disable the codec information (and initial device size for - video) + - `send_stream_meta`: disable codec and video size metadata - `raw_stream`: disable all the above [server-specific options]: https://github.com/Genymobile/scrcpy/blob/a3cdf1a6b86ea22786e1f7d09b9c202feabc6949/server/src/main/java/com/genymobile/scrcpy/Options.java#L309-L329 diff --git a/server/src/main/java/com/genymobile/scrcpy/Options.java b/server/src/main/java/com/genymobile/scrcpy/Options.java index 66bb68e8..89508942 100644 --- a/server/src/main/java/com/genymobile/scrcpy/Options.java +++ b/server/src/main/java/com/genymobile/scrcpy/Options.java @@ -78,7 +78,7 @@ public class Options { private boolean sendDeviceMeta = true; // send device name and size private boolean sendFrameMeta = true; // send PTS so that the client may record properly private boolean sendDummyByte = true; // write a byte on start to detect connection issues - private boolean sendCodecMeta = true; // write the codec metadata before the stream + private boolean sendStreamMeta = true; // write the stream metadata (codec and session) public Ln.Level getLogLevel() { return logLevel; @@ -284,8 +284,8 @@ public class Options { return sendDummyByte; } - public boolean getSendCodecMeta() { - return sendCodecMeta; + public boolean getSendStreamMeta() { + return sendStreamMeta; } @SuppressWarnings("MethodLength") @@ -500,8 +500,8 @@ public class Options { case "send_dummy_byte": options.sendDummyByte = Boolean.parseBoolean(value); break; - case "send_codec_meta": - options.sendCodecMeta = Boolean.parseBoolean(value); + case "send_stream_meta": + options.sendStreamMeta = Boolean.parseBoolean(value); break; case "raw_stream": boolean rawStream = Boolean.parseBoolean(value); @@ -509,7 +509,7 @@ public class Options { options.sendDeviceMeta = false; options.sendFrameMeta = false; options.sendDummyByte = false; - options.sendCodecMeta = false; + options.sendStreamMeta = false; } break; default: diff --git a/server/src/main/java/com/genymobile/scrcpy/Server.java b/server/src/main/java/com/genymobile/scrcpy/Server.java index 04e4a837..d75936e5 100644 --- a/server/src/main/java/com/genymobile/scrcpy/Server.java +++ b/server/src/main/java/com/genymobile/scrcpy/Server.java @@ -125,7 +125,7 @@ public final class Server { audioCapture = new AudioPlaybackCapture(options.getAudioDup()); } - Streamer audioStreamer = new Streamer(connection.getAudioFd(), audioCodec, options.getSendCodecMeta(), options.getSendFrameMeta()); + Streamer audioStreamer = new Streamer(connection.getAudioFd(), audioCodec, options.getSendStreamMeta(), options.getSendFrameMeta()); AsyncProcessor audioRecorder; if (audioCodec == AudioCodec.RAW) { audioRecorder = new AudioRawRecorder(audioCapture, audioStreamer); @@ -136,7 +136,7 @@ public final class Server { } if (video) { - Streamer videoStreamer = new Streamer(connection.getVideoFd(), options.getVideoCodec(), options.getSendCodecMeta(), + Streamer videoStreamer = new Streamer(connection.getVideoFd(), options.getVideoCodec(), options.getSendStreamMeta(), options.getSendFrameMeta()); SurfaceCapture surfaceCapture; if (options.getVideoSource() == VideoSource.DISPLAY) { diff --git a/server/src/main/java/com/genymobile/scrcpy/device/Streamer.java b/server/src/main/java/com/genymobile/scrcpy/device/Streamer.java index f54d0567..93c5077b 100644 --- a/server/src/main/java/com/genymobile/scrcpy/device/Streamer.java +++ b/server/src/main/java/com/genymobile/scrcpy/device/Streamer.java @@ -19,7 +19,7 @@ public final class Streamer { private final FileDescriptor fd; private final Codec codec; - private final boolean sendCodecMeta; + private final boolean sendStreamMeta; private final boolean sendFrameMeta; private final ByteBuffer headerBuffer = ByteBuffer.allocate(12); @@ -27,7 +27,7 @@ public final class Streamer { public Streamer(FileDescriptor fd, Codec codec, boolean sendCodecMeta, boolean sendFrameMeta) { this.fd = fd; this.codec = codec; - this.sendCodecMeta = sendCodecMeta; + this.sendStreamMeta = sendCodecMeta; this.sendFrameMeta = sendFrameMeta; } @@ -36,7 +36,7 @@ public final class Streamer { } public void writeAudioHeader() throws IOException { - if (sendCodecMeta) { + if (sendStreamMeta) { ByteBuffer buffer = ByteBuffer.allocate(4); buffer.putInt(codec.getId()); buffer.flip(); @@ -45,7 +45,7 @@ public final class Streamer { } public void writeVideoHeader(Size videoSize) throws IOException { - if (sendCodecMeta) { + if (sendStreamMeta) { ByteBuffer buffer = ByteBuffer.allocate(12); buffer.putInt(codec.getId()); buffer.putInt(videoSize.getWidth());