Search code examples
androidandroid-mediacodecsigabrtsamsung-galaxy

MediaCodec SIGABRT when releasing output buffers on Samsung Galaxy S7 Edge


Good afternoon,

I have come a cropper when developing my Android application.

I am attempting to decode an H264 RTSP stream from a camera. I get as far as preparing to release the output buffers to render the output to the Surface with no hitches.

The application crashes with a SIGABRT (as seen below) when using renderOutputBuffer with render set to true, however only on a Samsung Galaxy S7 Edge (and perhaps the 'not Edge' variety) on Android 7.0.

Unfortunately I am unable to debug the native area of the code. Does anyone know how I could debug this area?

Has anyone else come up against this and emerged victorious?

Please see the backtrace of the crash below.

Unfortunately, I am not able to share the code as I am under NDA. Apologies.

Thank you,

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)

Solution

  • Looks like the issue lay with conflicting plugins. The Crosswalk Webview was to blame. We were considering removing it anyway, so unfortunately we didn't trace the problem all the way to the actual issue.

    I might inform Crosswalk, but as of now the issue is no longer affecting us and clearly hasn't had much impact on many others.

    Cheers.