Nvidia Shield - Blank screen with 9.2.2 update
Nvidia Shield was recently updated to 9.2.2 release. Scrcpy shows a blank screen when the following is issued,
$ scrcpy --audio-codec=aac -Vverbose
scrcpy 3.3.3 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (tcpip) 192.168.1.2:5555 device SHIELD_Android_TV
DEBUG: Device serial: 192.168.1.2:5555
DEBUG: Using server: /nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/scrcpy/scrcpy-server
/nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 57.4 MB/s (90164 bytes in 0.001s)
[server] INFO: Device: [NVIDIA] NVIDIA SHIELD Android TV (Android 11)
DEBUG: Server connected
DEBUG: Starting controller thread
DEBUG: Starting receiver thread
DEBUG: Using icon: /nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/icons/hicolor/256x256/apps/scrcpy.png
[server] DEBUG: Using video encoder: 'OMX.Nvidia.h264.encoder'
[server] DEBUG: Using audio encoder: 'OMX.google.aac.encoder'
[server] DEBUG: Display: using SurfaceControl API
INFO: Renderer: software
DEBUG: Trilinear filtering disabled (not an OpenGL renderer)
DEBUG: Demuxer 'video': starting thread
DEBUG: Demuxer 'audio': starting thread
INFO: Texture: 1920x1080
VERBOSE: input: touch [id=mouse] hover-move position=1112,451 pressure=1.000000 action_button=000000 buttons=000000
DEBUG: Could not set thread priority: setpriority() failed
DEBUG: Could not set thread priority: setpriority() failed
VERBOSE: [Audio] Buffering: target=2400 avg=3205.787354 cur=3728 compensation=-805 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3226.420654 cur=3458 compensation=-826 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3069.062256 cur=3200 compensation=-669 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3245.308838 cur=4421 compensation=-845 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3388.290039 cur=4158 compensation=-988 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3395.906006 cur=4098 compensation=-995 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3337.037598 cur=3797 compensation=-937 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3227.453369 cur=3510 compensation=-827 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=3103.675537 cur=3251 compensation=-703 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=2976.509766 cur=3264 compensation=-576 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=2854.005859 cur=2829 compensation=-454 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=2759.967773 cur=2844 compensation=-359 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=2674.676514 cur=2642 compensation=-274 (underflow=0)
VERBOSE: [Audio] Buffering: target=2400 avg=2616.125977 cur=2701 compensation=-216 (underflow=0)```
$ scrcpy --audio-codec=aac -Vverbose scrcpy 3.3.3 https://github.com/Genymobile/scrcpy INFO: ADB device found: INFO: --> (tcpip) 192.168.1.2:5555 device SHIELD_Android_TV DEBUG: Device serial: 192.168.1.2:5555 DEBUG: Using server: /nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/scrcpy/scrcpy-server /nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 57.4 MB/s (90164 bytes in 0.001s) [server] INFO: Device: [NVIDIA] NVIDIA SHIELD Android TV (Android 11) DEBUG: Server connected DEBUG: Starting controller thread DEBUG: Starting receiver thread DEBUG: Using icon: /nix/store/7aqc8nigv9v8mv7qxmiwgzxmfaw6abrf-scrcpy-3.3.3/share/icons/hicolor/256x256/apps/scrcpy.png [server] DEBUG: Using video encoder: 'OMX.Nvidia.h264.encoder' [server] DEBUG: Using audio encoder: 'OMX.google.aac.encoder' [server] DEBUG: Display: using SurfaceControl API INFO: Renderer: software DEBUG: Trilinear filtering disabled (not an OpenGL renderer) DEBUG: Demuxer 'video': starting thread DEBUG: Demuxer 'audio': starting thread INFO: Texture: 1920x1080 VERBOSE: input: touch [id=mouse] hover-move position=1112,451 pressure=1.000000 action_button=000000 buttons=000000 DEBUG: Could not set thread priority: setpriority() failed DEBUG: Could not set thread priority: setpriority() failed VERBOSE: [Audio] Buffering: target=2400 avg=3205.787354 cur=3728 compensation=-805 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3226.420654 cur=3458 compensation=-826 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3069.062256 cur=3200 compensation=-669 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3245.308838 cur=4421 compensation=-845 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3388.290039 cur=4158 compensation=-988 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3395.906006 cur=4098 compensation=-995 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3337.037598 cur=3797 compensation=-937 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3227.453369 cur=3510 compensation=-827 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=3103.675537 cur=3251 compensation=-703 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=2976.509766 cur=3264 compensation=-576 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=2854.005859 cur=2829 compensation=-454 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=2759.967773 cur=2844 compensation=-359 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=2674.676514 cur=2642 compensation=-274 (underflow=0) VERBOSE: [Audio] Buffering: target=2400 avg=2616.125977 cur=2701 compensation=-216 (underflow=0)```
Upgraded to Shield Experience 9.2.2 and noticed h265 streaming is broke (I remember things worked last year on an older version of experience and scrcpy). Haven't used scrcpy for some time, so not sure if 9.2.2 broke things or scrcpy is at fault. HW h264 encoding works just fine.
C:> scrcpy --no-audio --video-codec=h265 --video-encoder=OMX.Nvidia.h265.encoder scrcpy 3.3.3 https://github.com/Genymobile/scrcpy INFO: Connecting to 192.168.2.110:5555... INFO: Connected to 192.168.2.110:5555 C:\Portable\Scrcpy-Win64\scrcpy-server: 1 file pushed, 0 skipped. 117.3 MB/s (90164 bytes in 0.001s) [server] INFO: Device: [NVIDIA] NVIDIA SHIELD Android TV (Android 11) [server] ERROR: Video encoder type for "OMX.Nvidia.h265.encoder" (image/vnd.android.heic) does not match codec type (video/hevc) INFO: Renderer: direct3d WARN: Device disconnected ERROR: Demuxer 'video': stream disabled due to connection error
C:>scrcpy --list-encoders scrcpy 3.3.3 https://github.com/Genymobile/scrcpy INFO: Connecting to 192.168.2.110:5555... INFO: Connected to 192.168.2.110:5555 C:\Portable\Scrcpy-Win64\scrcpy-server: 1 file pushed, 0 skipped. 2.8 MB/s (90164 bytes in 0.031s) [server] INFO: Device: [NVIDIA] NVIDIA SHIELD Android TV (Android 11) [server] INFO: List of video encoders: --video-codec=h264 --video-encoder=OMX.Nvidia.h264.encoder (hw) [vendor] --video-codec=h264 --video-encoder=OMX.google.h264.encoder (hybrid) --video-codec=h265 --video-encoder=OMX.Nvidia.h265.encoder (hw) [vendor] [server] INFO: List of audio encoders: --audio-codec=aac --audio-encoder=OMX.google.aac.encoder (hybrid) --audio-codec=flac --audio-encoder=OMX.google.flac.encoder (hybrid)