Skip to content

Severing adb connection between headset and web app then reloading the web app causes a crash #62

@RoiArthurB

Description

@RoiArthurB

Describe the bug
Not precisely sure when, but streaming Meta Quest 3s headsets can crash the application with this error log :

[0] [ScrcpyServer]  === This error probably comes from the cropping value out-of-bound on a classical Android device; but by default set for Meta Quest 3 value ===
[0] [ADB MANAGER] Waiting 2s before starting a new stream...
[0] [DEBUG] [server] DEBUG: Device message sender stopped
[0] [DEBUG] [server] DEBUG: Controller stopped
[0] [DEBUG] [server] ERROR: Exception on thread Thread[video,5,main]
[0] [DEBUG] java.lang.IllegalArgumentException: Crop Rect(2064, 0 - 4128, 2208) exceeds the input area (3664x1920)
[0] [DEBUG]     at com.genymobile.scrcpy.video.VideoFilter.addCrop(VideoFilter.java:59)
[0] [DEBUG]     at com.genymobile.scrcpy.video.ScreenCapture.prepare(ScreenCapture.java:92)
[0] [DEBUG]     at com.genymobile.scrcpy.video.SurfaceEncoder.streamCapture(SurfaceEncoder.java:80)
[0] [DEBUG]     at com.genymobile.scrcpy.video.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-video-SurfaceEncoder(SurfaceEncoder.java:317)
[0] [DEBUG]     at com.genymobile.scrcpy.video.SurfaceEncoder$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
[0] [DEBUG]     at java.lang.Thread.run(Thread.java:1012)
[0] [MONITOR SERVER] Connected to monitor server
[0] [ScrcpyServer] Web view connected
[0] [MONITOR SERVER] Connected to monitor server
[0] [MONITOR SERVER] Connected to monitor server
[0] [MONITOR SERVER] Connected to monitor server
[0] [mDNS] Application is available on http://poil.local:8000 =================
[0] Error: This socket has been ended by the other party
[0]     at genericNodeError (node:internal/errors:985:15)
[0]     at wrappedFn (node:internal/errors:539:14)
[0]     at Socket.writeAfterFIN [as write] (node:net:575:14)
[0]     at file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/adb-server-node-tcp/src/index.ts:40:28
[0]     at new Promise (<anonymous>)
[0]     at Object.write (file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/adb-server-node-tcp/src/index.ts:39:24)
[0]     at file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/stream-extra/src/maybe-consumable/writable.ts:52:37
[0]     at file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/stream-extra/src/consumable.ts:46:47
[0]     at Consumable.tryConsume (file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/stream-extra/src/consumable.ts:46:37)
[0]     at tryConsume (file:///home/roiarthurb/Documents/SIMPLE/IRD/GamaServerMiddleware/node_modules/@yume-chan/stream-extra/src/maybe-consumable/utils.ts:13:22)
[0] npx tsx src/api/index.ts exited with code 1
^C[1] vite exited with code SIGINT

To Reproduce
Steps to reproduce the behavior:

  1. Open webplatform streaming page
  2. Start streaming MQ3s
  3. Put display to sleep or something ?
  4. See error

Expected behavior
Same as with the MQ3, not crashing or properly catching this issue :)

Metadata

Metadata

Assignees

Labels

👀 scrcpyIssue related to casting android video📲 ADBIssue related to ADB functions🔌 ConnectionIssues with how applications are connecting together.😱 BugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions