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

screen freeze after starting minicap #10

Open
gebitang opened this issue Nov 14, 2015 · 3 comments
Open

screen freeze after starting minicap #10

gebitang opened this issue Nov 14, 2015 · 3 comments

Comments

@gebitang
Copy link

phone:

  • manufacturer: 'OPPO'
  • model: 'OPPO X9007'
  • version: '4.3'
  • abi: 'armeabi-v7a'
  • sdk: '18'

after starting minicap on device manually:

F:\>adb shell
shell@X9007:/ $ cd /data/local/tmp
cd /data/local/tmp
shell@X9007:/data/local/tmp $ LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/mi
nicap -P 1080x1920@1080x1920/0
cal/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0                      <
PID: 25100
INFO: Using projection 1080x1920@1080x1920/0
INFO: (external/MY_minicap/src/minicap_18.cpp:239) Creating SurfaceComposerClien
t
INFO: (external/MY_minicap/src/minicap_18.cpp:242) Performing SurfaceComposerCli
ent init check
INFO: (external/MY_minicap/src/minicap_18.cpp:249) Creating virtual display
INFO: (external/MY_minicap/src/minicap_18.cpp:255) Creating CPU consumer
INFO: (external/MY_minicap/src/minicap_18.cpp:259) Creating buffer queue
INFO: (external/MY_minicap/src/minicap_18.cpp:264) Creating frame waiter
INFO: (external/MY_minicap/src/minicap_18.cpp:268) Publishing virtual display
INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 6268932 bytes for JPG encoder

The whole screen will be frozen immediately, not response to any touch or click gesture.

then close minicap via Ctrl+C. Current application, whatever it is on device, will show ANR message.


For other device(Meizu m1 note). it will be frozen too after a while.
phone info:

  • manufacturer: 'Meizu'
  • model: 'Meizu m1 note'
  • version: '4.4.4'
  • abi: 'armeabi-v7a'
  • sdk: '19'

What is the possible reason for this problem? Both of the two devices use custom android ROM.

@sorccu
Copy link
Member

sorccu commented Nov 14, 2015

Probably minicap isn't able to convert the frames quickly enough on those devices, the system runs out of free framebuffers, and due to maker customizations decides to lock up itself instead of killing old buffers.

The situation could be improved somewhat by using separate threads for the frame tracking and conversion, but I'm not sure when I'll have the time to work on that. Also, I don't have any device that exhibits that problem.

If you or your company wants to get those devices supported, consider becoming a hardware sponsor to speed things up.

@gebitang
Copy link
Author

@sorccu First of all, thanks for your advice.
It seems that this problem turns out to be that there are too many frames available before consuming them on above mentioned device OPPO.

If we consume these available frames when there are more than 3 ones, and release consumed frame, then the device screen will be fine, no longer freeze anymore.

this is some kind of work around I guess.


But here is another thing, what if there is only one frame? This happened on Meitu phone(other custom ROM). Device is normal, you can do what you want, but minicap can only receive the first one frame.

manufacturer: 'Meitu'
model: 'Meitu MK150'
version: '4.2.1'
abi: 'armeabi-v7a'
sdk: '17'

What could cause that?

@a05151988
Copy link

Hello , I have the same issue.
My phone information:

manufacturer: 'Acer'
model: 'S510'
version: '4.2.2'
abi: 'armeabi-v7a'
sdk: '17'

It just can get first one frame , when I touch phone screen , It dosen't change frame.

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

3 participants