lakeinchina / librestreaming

Android real-time effect filter rtmp streaming library.using Mediacodec HWencoding&librtmp stream.
GNU Lesser General Public License v2.1
942 stars 317 forks source link

ANR on Meizu MX4 #77

Open akotsuba opened 8 years ago

akotsuba commented 8 years ago

Hi @lakeinchina, thanks for your great library!

I have an issue with HardFilter mode on one of our test device Meizu MX4. Preview Activity launches, but it can freeze unexpectedly (especially on filter switch and move app to background/foreground). I've added ANR-Watchdog library to get stacktrace.

09-22 12:30:27.649 18425-18455/? E/AndroidRuntime: FATAL EXCEPTION: |ANR-WatchDog|
                                                   Process: me.lake.librestreaming.sample, PID: 18425
                                                   com.github.anrwatchdog.ANRError: Application Not Responding
                                                   Caused by: com.github.anrwatchdog.ANRError$$$_Thread: main (state = RUNNABLE)
                                                       at android.view.HardwareRenderer.nBeginFrame(Native Method)
                                                       at android.view.HardwareRenderer.beginFrame(HardwareRenderer.java:414)
                                                       at android.view.HardwareRenderer$GlRenderer.beginFrame(HardwareRenderer.java:1644)
                                                       at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1503)
                                                       at android.view.ViewRootImpl.draw(ViewRootImpl.java:3255)
                                                       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3109)
                                                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2731)
                                                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1314)
                                                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6951)
                                                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
                                                       at android.view.Choreographer.doCallbacks(Choreographer.java:591)
                                                       at android.view.Choreographer.doFrame(Choreographer.java:560)
                                                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
                                                       at android.os.Handler.handleCallback(Handler.java:808)
                                                       at android.os.Handler.dispatchMessage(Handler.java:103)
                                                       at android.os.Looper.loop(Looper.java:193)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5332)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:515)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
                                                       at dalvik.system.NativeStart.main(Native Method)
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: AudioRecord (state = RUNNABLE)
                                                       at dalvik.system.NativeStart.run(Native Method)
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: Binder_1 (state = RUNNABLE)
                                                       at dalvik.system.NativeStart.run(Native Method) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: Binder_2 (state = RUNNABLE)
                                                       at dalvik.system.NativeStart.run(Native Method) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: Binder_3 (state = RUNNABLE)
                                                       at dalvik.system.NativeStart.run(Native Method) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: Compiler (state = WAITING)
                                                       at dalvik.system.NativeStart.run(Native Method) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: FinalizerDaemon (state = WAITING)
                                                       at java.lang.Object.wait(Native Method)
                                                       at java.lang.Object.wait(Object.java:400)
                                                       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
                                                       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
                                                       at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:175)
                                                       at java.lang.Thread.run(Thread.java:848)
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: FinalizerWatchdogDaemon (state = TIMED_WAITING)
                                                       at java.lang.VMThread.sleep(Native Method)
                                                       at java.lang.Thread.sleep(Thread.java:1020)
                                                       at java.lang.Thread.sleep(Thread.java:1002)
                                                       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:252)
                                                       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:264)
                                                       at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:216)
                                                       at java.lang.Thread.run(Thread.java:848) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: GAC_Executor[0] (state = WAITING)
                                                       at java.lang.Object.wait(Native Method)
                                                       at java.lang.Thread.parkFor(Thread.java:1212)
                                                       at sun.misc.Unsafe.park(Unsafe.java:325)
                                                       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
                                                       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
                                                       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
                                                       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
                                                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
                                                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                       at com.google.android.gms.internal.zzrn.run(Unknown Source)
                                                       at java.lang.Thread.run(Thread.java:848) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: GAC_Executor[1] (state = WAITING)
                                                       at java.lang.Object.wait(Native Method) 
                                                       at java.lang.Thread.parkFor(Thread.java:1212) 
                                                       at sun.misc.Unsafe.park(Unsafe.java:325) 
                                                       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) 
                                                       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017) 
                                                       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410) 
                                                       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) 
                                                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) 
                                                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                       at com.google.android.gms.internal.zzrn.run(Unknown Source) 
                                                       at java.lang.Thread.run(Thread.java:848) 
                                                    Caused by: com.github.anrwatchdog.ANRError$$$_Thread: GC (state = WAITING)
                                                    at dalvik.system.NativeSta...

Not sure these logs are enough, but for now this is all I have. Anyway if you have an opportunity to check this issue I would be very grateful for the help. Thanks!

lakeinchina commented 8 years ago

sorry,I am on holiday.I will check it latter

akotsuba commented 8 years ago

@lakeinchina no problem, have a nice holiday! :)

lakeinchina commented 8 years ago

Unfortunately I don`t have this device and I want to confirm that you are using the latest version? Is there any other device that also has this problem?

akotsuba commented 8 years ago

Yes, it was the latest version, and no, there is only device with such a problem