Genymobile / scrcpy

Display and control your Android device
Apache License 2.0
113.54k stars 10.81k forks source link

Writing on an ereader (onyx boox max2) #1293

Open thstyl2000 opened 4 years ago

thstyl2000 commented 4 years ago

Environment

When writing on the device, words appear on the computer screen completely after I lift the pen. That is, when I start writing, everything is normal on the device, but on the computer the pointer (-t option) moves smoothly words appear only when I make a short pause and lift the pen.

ibuki2003 commented 4 years ago

(I'm Sorry I am outsider,) I think the issue may not be avoidable on E-Ink devices. Because Onyx uses a special way to improve the responsiveness of writing. The device shows the line without Android's support while you writing with the pen, and once you lift the pen, the device will tell the OS that the line drawn.

haoyun commented 4 years ago

(may also be off-topic) I have a Boox Max 3, however I cannot start scrcpy:

$ scrcpy 
INFO: scrcpy 1.14 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 2.1 MB/s (33142 bytes in 0.015s)
[server] INFO: Device: ONYX Max3 (Android 9)
INFO: OpenGL shaders: ENABLED
INFO: Created renderer: opengl
INFO: Renderer: opengl
INFO: OpenGL version: 3.0 Mesa 19.2.8
INFO: Trilinear filtering enabled
INFO: Initial texture: 1648x2200

nothing shows then. Are there any special options should I use? I've turned on the USB debugging. Is it because Onyx removed some component of the android?

ibuki2003 commented 4 years ago

In my case, specifying half of actual device width for resolution (by flag -m) solves the problem.

haoyun commented 4 years ago

In my case, specifying half of actual device width for resolution (by flag -m) solves the problem.

Thanks a lot, however that does not work for me, still nothing shows up. It does work for my phone.

$ __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia scrcpy -m 1100
INFO: scrcpy 1.14 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 2.8 MB/s (33142 bytes in 0.011s)
[server] INFO: Device: ONYX Max3 (Android 9)
INFO: OpenGL shaders: ENABLED
INFO: Created renderer: opengl
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 440.100
INFO: Trilinear filtering enabled
INFO: Initial texture: 824x1096

Sometimes, an error was thrown out:

[server] ERROR: Exception on thread Thread[main,5,main]
android.media.MediaCodec$CodecException: start failed
    at android.media.MediaCodec.native_start(Native Method)
    at android.media.MediaCodec.start(MediaCodec.java:2068)
    at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:87)
    at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:55)
    at com.genymobile.scrcpy.Server.scrcpy(Server.java:76)
    at com.genymobile.scrcpy.Server.main(Server.java:225)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:340)

I am using the latest firmware: 2020-07-14_10-48_2.3.1_8b53f3f.

jelofer commented 4 years ago

Hi! I also have an Onyx Boox Max 3 and the same problem as Haoyun, i.e. when I try to start scrcpy nothing is shown in the computer screen. I have tried with different versions of scrcpy, but I could not get any result. I have no clue about what is happening. Although I cannot get any image in the computer screen I can send some commands to the E-ink tablet. For instance, I tried to switch off the tablet screen using "scrcpy -S" and it worked (although it rotated the screen 90º).

Thanks in advance for any help that you can provide me!

alisaaalehi commented 4 years ago

Any update on this? I'm having the same issue on Boox Note 2, nothing shows up.

braverock commented 3 years ago

I am the reporter of #1970 above, and it seems like we may need to try the dev build and the encoder option from #1827

yume-chan commented 3 years ago

I have a ONYX BOOX Nova Pro and after lowering the resolution (to about a half) I can get it to work with scrcpy 1.16.

dariocazas commented 3 years ago

I have a Onyx Boox Note Air and try the --encoder option without success (recommended in this comment):

I tested it using a PC with Fedora 32 (v1.17):

In another PC using Ubuntu 20.04 (install via apt, v1.12.0, no --encoder opcion) doesn't open new window neither showing my device.

If is usefull for someone, I run this sequence without success (in all cases, scrcpy doesn't open new window with Onyx screen in my PC):

 ~  scrcpy --encoder _ 
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 3.5 MB/s (34930 bytes in 0.009s)
[server] INFO: Device: ONYX NoteAir (Android 10)
[server] ERROR: Exception on thread Thread[main,5,main]
com.genymobile.scrcpy.InvalidEncoderException: There is no encoder having name '_"
    at com.genymobile.scrcpy.ScreenEncoder.createCodec(ScreenEncoder.java:176)
    at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:77)
    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:338)
[server] ERROR: Try to use one of the available encoders:
[server] ERROR:     scrcpy --encoder-name 'OMX.qcom.video.encoder.avc'
[server] ERROR:     scrcpy --encoder-name 'c2.android.avc.encoder'
[server] ERROR:     scrcpy --encoder-name 'OMX.google.h264.encoder'
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
WARN: Device disconnected
 ✘  ~  scrcpy --encoder OMX.google.h264.encoder
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 12.2 MB/s (34930 bytes in 0.003s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%                                                                                                                                    
~  scrcpy --encoder c2.android.avc.encoder 
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 4.1 MB/s (34930 bytes in 0.008s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%                                                                                                                                    
~  scrcpy --encoder OMX.qcom.video.encoder.avc
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 2.6 MB/s (34930 bytes in 0.013s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%    
qhga commented 3 years ago

I have a Onyx Boox Note Air and try the --encoder option without success (recommended in this comment):

  • the scrcpy command doesn't show any error
  • the journalctl doesn't show any suspect
  • increase the log level in scrcpy with -V debug doesn't show any suspect

I tested it using a PC with Fedora 32 (v1.17):

  • I try with -m 700 without success.
  • I try with -m 700 --window-width 520 --window-height 696 without success.
  • I try with --turn-screen-off and my onyx device change to lock screen (but rotated, partial outside of screen view), and when stop the scrcpy command, the device unlock the screen automatically.

In another PC using Ubuntu 20.04 (install via apt, v1.12.0, no --encoder opcion) doesn't open new window neither showing my device.

If is usefull for someone, I run this sequence without success (in all cases, scrcpy doesn't open new window with Onyx screen in my PC):

 ~  scrcpy --encoder _ 
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 3.5 MB/s (34930 bytes in 0.009s)
[server] INFO: Device: ONYX NoteAir (Android 10)
[server] ERROR: Exception on thread Thread[main,5,main]
com.genymobile.scrcpy.InvalidEncoderException: There is no encoder having name '_"
  at com.genymobile.scrcpy.ScreenEncoder.createCodec(ScreenEncoder.java:176)
  at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:77)
  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:338)
[server] ERROR: Try to use one of the available encoders:
[server] ERROR:     scrcpy --encoder-name 'OMX.qcom.video.encoder.avc'
[server] ERROR:     scrcpy --encoder-name 'c2.android.avc.encoder'
[server] ERROR:     scrcpy --encoder-name 'OMX.google.h264.encoder'
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
WARN: Device disconnected
 ✘  ~  scrcpy --encoder OMX.google.h264.encoder
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 12.2 MB/s (34930 bytes in 0.003s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%                                                                                                                                    
~  scrcpy --encoder c2.android.avc.encoder 
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 4.1 MB/s (34930 bytes in 0.008s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%                                                                                                                                    
~  scrcpy --encoder OMX.qcom.video.encoder.avc
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 2.6 MB/s (34930 bytes in 0.013s)
[server] INFO: Device: ONYX NoteAir (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.2.3
INFO: Trilinear filtering enabled
INFO: Initial texture: 1400x1872
^C%    

I can confirm the same behaviour on the following setup: OS: Arch Linux (Kernerl 5.10.16) scrcpy version: 1.17 scrcpy dependencies:

Tablet: Onyx Boox Max Lumi

Other devices (Xiaomi Mi Mix 2s, Lenovo Tablet) work fine with scrcpy.

Anything we can do to help resolve this issue? (:

Zaphood22 commented 3 years ago

My onyx note air has USB-problems, and it seems to be common to the onyx devices, from what I read in forums. Check the notifications, if they show that debugging is on and try the USB working mode settings. In my case, I cannot switch the device controlling the connection from onxy to computer. Rebooting the onyx sometimes helps, sometimes only for a short period of time. It's a onyx bug.