Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IllegalStateException -- scrcpy 1.17 -- raspberry pi (Debian 11 aarch64) -- Android tv (Android 5.1.0-R-20240530.1105) #5806

Open
lrq315 opened this issue Jan 31, 2025 · 5 comments

Comments

@lrq315
Copy link

lrq315 commented Jan 31, 2025

error

pi@AAA:~ $ scrcpy
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 0.5 MB/s (34015 bytes in 0.060s)
[server] INFO: Device: haier HRA920L_1G_WF (Android 5.1.0-R-20240530.1105)
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1037)
	at com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:113)
	at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:94)
	at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
	at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
	at com.genymobile.scrcpy.Server.main(Server.java:252)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)
INFO: Renderer: opengl
INFO: OpenGL version: 2.1 Mesa 20.3.5
WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)
INFO: Initial texture: 1280x720
WARN: Device disconnected

info

pi@AAA:~ $ scrcpy --version
scrcpy 1.17

dependencies:
 - SDL 2.0.14
 - libavcodec 58.91.100
 - libavformat 58.45.100
 - libavutil 56.51.100
 - 
pi@AAA:~ $ adb --version
Android Debug Bridge version 1.0.41
Version 28.0.2-debian
Installed as /usr/lib/android-sdk/platform-tools/adb

how

adb connect 192.168.1.107
scrcpy

tried

#465 (comment)

scrcpy -m1024
pi@AAA:~ $ adb shell screenrecord /sdcard/file.mp4
Unable to get output buffers (err=-38)
Encoder failed (err=-38)
@rom1v
Copy link
Collaborator

rom1v commented Jan 31, 2025

scrcpy 1.17

In any case, this is outdated. Upgrade to the latest version (currently 3.1).

Given that it does not work with screenrecord, the problem might be with your device ROM though. Try with another encoder (see --list-encoders).

@lrq315
Copy link
Author

lrq315 commented Jan 31, 2025

@rom1v thanks for the quick response!

for changing encoders

pi@AAA:~ $ scrcpy --list-encoders
scrcpy: unrecognized option '--list-encoders'

pi@AAA:~ $ scrcpy --encoder blabla
[server] ERROR: Try to use one of the available encoders:
[server] ERROR:     scrcpy --encoder-name 'OMX.amlogic.video.encoder.avc'
[server] ERROR:     scrcpy --encoder-name 'OMX.google.h264.encoder'

but I'm facing

pi@AAA:~ $ scrcpy --encoder-name 'OMX.amlogic.video.encoder.avc'
scrcpy: unrecognized option '--encoder-name'

so I'm working on upgrade to the latest version but facing similar issue

pi@AAA:~ $ scrcpy --version
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>

Dependencies (compiled / linked):
 - SDL: 2.0.14 / 2.0.14
 - libavcodec: 58.91.100 / 58.91.100
 - libavformat: 58.45.100 / 58.45.100
 - libavutil: 56.51.100 / 56.51.100
 - libavdevice: 58.10.100 / 58.10.100
 - libusb: - / 1.0.24
pi@AAA:~ $ adb kill-server
pi@AAA:~ $ adb connect 192.168.1.107:5555
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 192.168.1.107:5555
pi@AAA:~ $ adb devices
List of devices attached
192.168.1.107:5555	device

pi@AAA:~ $ scrcpy
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     --> (tcpip)  192.168.1.107:5555              device  HRA920L_1G_WF
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.6 MB/s (90640 bytes in 0.139s)
[server] INFO: Device: [haier] Android HRA920L_1G_WF (Android 5.1.0-R-20240530.1105)
[server] WARN: Audio disabled: it is not supported before Android 11
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1024...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1037)
	at com.genymobile.scrcpy.video.SurfaceEncoder.encode(SurfaceEncoder.java:202)
	at com.genymobile.scrcpy.video.SurfaceEncoder.streamCapture(SurfaceEncoder.java:110)
	at com.genymobile.scrcpy.video.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-video-SurfaceEncoder(SurfaceEncoder.java:296)
	at com.genymobile.scrcpy.video.SurfaceEncoder$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at java.lang.Thread.run(Thread.java:818)
INFO: Renderer: opengl
INFO: OpenGL version: 2.1 Mesa 20.3.5
WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)
WARN: Device disconnected
WARN: Demuxer 'audio': stream explicitly disabled by the device

@lrq315
Copy link
Author

lrq315 commented Jan 31, 2025

It could be a problem with my TV OS? if so I need to flash it with other os...

@rom1v
Copy link
Collaborator

rom1v commented Jan 31, 2025

Try --list-encoders with the latest version, and use --video-encoder=….

See https://github.com/Genymobile/scrcpy/blob/master/doc/video.md#encoder

@lrq315
Copy link
Author

lrq315 commented Jan 31, 2025

pi@AAA:~ $ scrcpy --list-encoders
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     --> (tcpip)  192.168.1.107:5555              device  HRA920L_1G_WF
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.5 MB/s (90640 bytes in 0.168s)
[server] INFO: Device: [haier] Android HRA920L_1G_WF (Android 5.1.0-R-20240530.1105)
[server] INFO: List of video encoders:
    --video-codec=h264 --video-encoder=OMX.amlogic.video.encoder.avc
    --video-codec=h264 --video-encoder=OMX.google.h264.encoder
[server] INFO: List of audio encoders:
    --audio-codec=aac --audio-encoder=OMX.google.aac.encoder
    --audio-codec=flac --audio-encoder=OMX.google.flac.encoder

pi@AAA:~ $ scrcpy --video-codec=h264 --video-encoder=OMX.amlogic.video.encoder.avc
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     --> (tcpip)  192.168.1.107:5555              device  HRA920L_1G_WF
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.4 MB/s (90640 bytes in 0.213s)
[server] INFO: Device: [haier] Android HRA920L_1G_WF (Android 5.1.0-R-20240530.1105)
[server] WARN: Audio disabled: it is not supported before Android 11
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1024...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1037)
	at com.genymobile.scrcpy.video.SurfaceEncoder.encode(SurfaceEncoder.java:202)
	at com.genymobile.scrcpy.video.SurfaceEncoder.streamCapture(SurfaceEncoder.java:110)
	at com.genymobile.scrcpy.video.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-video-SurfaceEncoder(SurfaceEncoder.java:296)
	at com.genymobile.scrcpy.video.SurfaceEncoder$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at java.lang.Thread.run(Thread.java:818)
INFO: Renderer: opengl
INFO: OpenGL version: 2.1 Mesa 20.3.5
WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)
WARN: Device disconnected
WARN: Demuxer 'audio': stream explicitly disabled by the device

pi@AAA:~ $ scrcpy --video-codec=h264 --video-encoder=OMX.google.h264.encoder
scrcpy 3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     --> (tcpip)  192.168.1.107:5555              device  HRA920L_1G_WF
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.5 MB/s (90640 bytes in 0.162s)
[server] INFO: Device: [haier] Android HRA920L_1G_WF (Android 5.1.0-R-20240530.1105)
[server] WARN: Audio disabled: it is not supported before Android 11
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m1024...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
[server] INFO: Retrying with -m800...
[server] ERROR: Capture/encoding error: java.lang.IllegalStateException: null
INFO: Renderer: opengl
INFO: OpenGL version: 2.1 Mesa 20.3.5
WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)
WARN: Demuxer 'audio': stream explicitly disabled by the device
INFO: Texture: 1280x720
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1037)
	at com.genymobile.scrcpy.video.SurfaceEncoder.encode(SurfaceEncoder.java:202)
	at com.genymobile.scrcpy.video.SurfaceEncoder.streamCapture(SurfaceEncoder.java:110)
	at com.genymobile.scrcpy.video.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-video-SurfaceEncoder(SurfaceEncoder.java:296)
	at com.genymobile.scrcpy.video.SurfaceEncoder$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at java.lang.Thread.run(Thread.java:818)
WARN: Device disconnected

same issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants