MediaCodec SIGABRT 在三星 Galaxy S7 Edge 上释放输出缓冲区时

MediaCodec SIGABRT when releasing output buffers on Samsung Galaxy S7 Edge

下午好,

我在开发 Android 应用程序时遇到了麻烦。

我正在尝试解码来自摄像机的 H264 RTSP 流。我已经准备好释放输出缓冲区,以便顺利地将输出渲染到 Surface。

当使用 renderOutputBufferrender 设置为 true 时,应用程序崩溃并出现 SIGABRT(如下所示),但仅在 Samsung Galaxy S7 Edge 上(可能还有 'not Edge' 品种)在 Android 7.0.

很遗憾,我无法调试本机区域的代码。有谁知道我如何调试这个区域?

有没有其他人遇到过这个并取得胜利?

请查看下面的崩溃回溯。

不幸的是,我无法分享代码,因为我处于 NDA 之下。抱歉。

谢谢,

04-18 13:48:28.183 26496-26496/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-18 13:48:28.184 26496-26496/? A/DEBUG: Build fingerprint: 'samsung/hero2ltexx/hero2lte:7.0/NRD90M/G935FXXU1DQC4:user/release-keys'
04-18 13:48:28.184 26496-26496/? A/DEBUG: Revision: '9'
04-18 13:48:28.184 26496-26496/? A/DEBUG: ABI: 'arm'
04-18 13:48:28.185 26496-26496/? A/DEBUG: pid: 26350, tid: 26486, name: MediaCodec_loop  >>> <appid> <<<
04-18 13:48:28.185 26496-26496/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
04-18 13:48:28.185 26496-26496/? A/DEBUG:     r0 00000000  r1 00006776  r2 00000006  r3 00000008
04-18 13:48:28.185 26496-26496/? A/DEBUG:     r4 cc222978  r5 00000006  r6 cc222920  r7 0000010c
04-18 13:48:28.186 26496-26496/? A/DEBUG:     r8 c5e42e68  r9 cc2228ac  sl c5d72270  fp b7c2a140
04-18 13:48:28.186 26496-26496/? A/DEBUG:     ip 00000000  sp cc2225f0  lr f2889957  pc f288c1c0  cpsr 600d0010
04-18 13:48:28.220 26496-26496/? A/DEBUG: backtrace:
04-18 13:48:28.220 26496-26496/? A/DEBUG:     #00 pc 0004a1c0  /system/lib/libc.so (tgkill+12)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #01 pc 00047953  /system/lib/libc.so (pthread_kill+34)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #02 pc 0001d955  /system/lib/libc.so (raise+10)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #03 pc 000194a1  /system/lib/libc.so (__libc_android_abort+34)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #04 pc 000170e8  /system/lib/libc.so (abort+4)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #05 pc 000e7d8f  /system/lib/libstagefright.so (_ZN7android10MediaCodec21onReleaseOutputBufferERKNS_2spINS_8AMessageEEE+806)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #06 pc 000e3b8b  /system/lib/libstagefright.so (_ZN7android10MediaCodec17onMessageReceivedERKNS_2spINS_8AMessageEEE+478)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #07 pc 0000ecf9  /system/lib/libstagefright_foundation.so (_ZN7android8AHandler14deliverMessageERKNS_2spINS_8AMessageEEE+24)
04-18 13:48:28.221 26496-26496/? A/DEBUG:     #08 pc 00010edf  /system/lib/libstagefright_foundation.so (_ZN7android8AMessage7deliverEv+62)
04-18 13:48:28.222 26496-26496/? A/DEBUG:     #09 pc 0000f869  /system/lib/libstagefright_foundation.so (_ZN7android7ALooper4loopEv+372)
04-18 13:48:28.222 26496-26496/? A/DEBUG:     #10 pc 0000e3a7  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+270)
04-18 13:48:28.222 26496-26496/? A/DEBUG:     #11 pc 0006b2a5  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
04-18 13:48:28.224 26496-26496/? A/DEBUG:     #12 pc 00047423  /system/lib/libc.so (_ZL15__pthread_startPv+22)
04-18 13:48:28.224 26496-26496/? A/DEBUG:     #13 pc 00019efd  /system/lib/libc.so (__start_thread+6)

看起来问题出在插件冲突上。 Crosswalk Webview 是罪魁祸首。无论如何,我们都在考虑将其删除,所以遗憾的是我们没有一直追踪到实际问题。

我可能会通知 Crosswalk,但截至目前,该问题已不再影响我们,显然对其他许多人也没有太大影响。

干杯。