'남은그루터기'님이 강좌에 작성하신 대로
ffmpeg을 jni를 써서 android에 올리고 있습니다.
올려주신 샘플코드를 그대로 사용하고 있는데요,
closeMovie()함수만 돌리면 jni에서 에러가 발생하여 앱이 강제종료 되어 버립니다.
Java단에서 하는 일은,
initBasePlayer() --> openMovie --> renderFrame (1회 실행) --> closeMovie()
의 순입니다.
여기에서 closeMovie()에만 들어가면 자동종료 됩니다.
closeMovie() 함수는 다음과 같습니다.
void closeMovie()
{
if (gVideoBuffer != NULL) {
av_freep(gVideoBuffer);
gVideoBuffer = NULL;
}
if (gFrame != NULL)
av_freep(gFrame);
if (gFrameRGB != NULL)
av_freep(gFrameRGB);
if (gVideoCodecCtx != NULL) {
avcodec_close(gVideoCodecCtx);
gVideoCodecCtx = NULL;
}
if (gFormatCtx != NULL) {
av_close_input_file(gFormatCtx);
gFormatCtx = NULL;
}
}
그리고 logcat에서 찍어내는 DEBUG메세지는 다음과 같습니다.
09-30 14:29:48.046: INFO/DEBUG(195): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-30 14:29:48.046: INFO/DEBUG(195): Build fingerprint: 'samsung/SHW-M110S/SHW-M110S:2.3.3/GINGERBREAD/VE03:user/release-keys'
09-30 14:29:48.046: INFO/DEBUG(195): pid: 5178, tid: 5178 >>> net.jbong.FFmpegBasic <<<
09-30 14:29:48.050: INFO/DEBUG(195): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
09-30 14:29:48.054: INFO/DEBUG(195): r0 00000027 r1 deadbaad r2 a0000000 r3 00000000
09-30 14:29:48.054: INFO/DEBUG(195): r4 00000001 r5 00000000 r6 46e98e30 r7 0000a000
09-30 14:29:48.058: INFO/DEBUG(195): r8 bed1b3b8 r9 44295dd4 10 44295dc0 fp 801a5374
09-30 14:29:48.058: INFO/DEBUG(195): ip afd46688 sp bed1b358 lr afd19239 pc afd15d04 cpsr 68000030
09-30 14:29:48.062: INFO/DEBUG(195): d0 766f4d65736f6c63 d1 61727478452f6769
09-30 14:29:48.062: INFO/DEBUG(195): d2 44297e6c44297e6c d3 442000004290003b
09-30 14:29:48.062: INFO/DEBUG(195): d4 0000000041400000 d5 0000000041400000
09-30 14:29:48.062: INFO/DEBUG(195): d6 3d99999a3d99999a d7 000000003f000000
09-30 14:29:48.062: INFO/DEBUG(195): d8 0000000000000000 d9 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d10 0000000000000000 d11 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d12 0000000000000000 d13 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d14 0000000000000000 d15 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d16 46dcc02040527888 d17 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d18 0000000000000000 d19 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d20 0000000000000000 d21 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d22 0000000000000000 d23 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d24 0000000000000000 d25 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d26 ffffffffffffffff d27 0000000000000000
09-30 14:29:48.062: INFO/DEBUG(195): d28 0000000000000000 d29 0000000000000000
09-30 14:29:48.074: INFO/DEBUG(195): d30 ffffffffffffffff d31 ffffffffffffffff
09-30 14:29:48.074: INFO/DEBUG(195): scr 88000012
09-30 14:29:48.125: INFO/DEBUG(195): #00 pc 00015d04 /system/lib/libc.so
09-30 14:29:48.125: INFO/DEBUG(195): #01 pc 00013674 /system/lib/libc.so
09-30 14:29:48.125: INFO/DEBUG(195): #02 pc 0001453a /system/lib/libc.so
09-30 14:29:48.125: INFO/DEBUG(195): #03 pc 003a9a58 /data/data/net.jbong.FFmpegBasic/lib/libbasicplayer.so
09-30 14:29:48.125: INFO/DEBUG(195): #04 pc 000304f0 /data/data/net.jbong.FFmpegBasic/lib/libbasicplayer.so
09-30 14:29:48.125: INFO/DEBUG(195): #05 pc 00017e74 /system/lib/libdvm.so
09-30 14:29:48.125: INFO/DEBUG(195): #06 pc 00049686 /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #07 pc 0004eea2 /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #08 pc 0001d074 /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #09 pc 00022124 /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #10 pc 0002101c /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #11 pc 0005fe1e /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #12 pc 00067bea /system/lib/libdvm.so
09-30 14:29:48.128: INFO/DEBUG(195): #13 pc 0001d074 /system/lib/libdvm.so
09-30 14:29:48.132: INFO/DEBUG(195): #14 pc 00022124 /system/lib/libdvm.so
09-30 14:29:48.132: INFO/DEBUG(195): #15 pc 0002101c /system/lib/libdvm.so
09-30 14:29:48.132: INFO/DEBUG(195): #16 pc 0005fc80 /system/lib/libdvm.so
09-30 14:29:48.132: INFO/DEBUG(195): #17 pc 0004c166 /system/lib/libdvm.so
09-30 14:29:48.132: INFO/DEBUG(195): #18 pc 00038cae /system/lib/libandroid_runtime.so
09-30 14:29:48.132: INFO/DEBUG(195): #19 pc 0003a69a /system/lib/libandroid_runtime.so
09-30 14:29:48.132: INFO/DEBUG(195): #20 pc 00008cca /system/bin/app_process
09-30 14:29:48.136: INFO/DEBUG(195): #21 pc 00014bb2 /system/lib/libc.so
09-30 14:29:48.136: INFO/DEBUG(195): code around pc:
09-30 14:29:48.136: INFO/DEBUG(195): afd15ce4 2c006824 e028d1fb b13368db c064f8df
09-30 14:29:48.136: INFO/DEBUG(195): afd15cf4 44fc2401 4000f8cc 49124798 25002027
09-30 14:29:48.136: INFO/DEBUG(195): afd15d04 f7f57008 2106ec64 edd8f7f6 460aa901
09-30 14:29:48.136: INFO/DEBUG(195): afd15d14 f04f2006 95015380 95029303 e93ef7f6
09-30 14:29:48.136: INFO/DEBUG(195): afd15d24 462aa905 f7f62002 f7f5e94a 2106ec50
09-30 14:29:48.136: INFO/DEBUG(195): code around lr:
09-30 14:29:48.136: INFO/DEBUG(195): afd19218 4a0e4b0d e92d447b 589c41f0 26004680
09-30 14:29:48.136: INFO/DEBUG(195): afd19228 686768a5 f9b5e006 b113300c 47c04628
09-30 14:29:48.136: INFO/DEBUG(195): afd19238 35544306 37fff117 6824d5f5 d1ef2c00
09-30 14:29:48.136: INFO/DEBUG(195): afd19248 e8bd4630 bf0081f0 00028304 ffffff88
09-30 14:29:48.136: INFO/DEBUG(195): afd19258 b086b570 f602fb01 9004460c a804a901
09-30 14:29:48.136: INFO/DEBUG(195): stack:
09-30 14:29:48.136: INFO/DEBUG(195): bed1b318 afd42684
09-30 14:29:48.136: INFO/DEBUG(195): bed1b31c 0009fdf8
09-30 14:29:48.136: INFO/DEBUG(195): bed1b320 00000015
09-30 14:29:48.140: INFO/DEBUG(195): bed1b324 afd18301 /system/lib/libc.so
09-30 14:29:48.140: INFO/DEBUG(195): bed1b328 afd4272c
09-30 14:29:48.140: INFO/DEBUG(195): bed1b32c afd426d8
09-30 14:29:48.140: INFO/DEBUG(195): bed1b330 00000000
09-30 14:29:48.140: INFO/DEBUG(195): bed1b334 afd19239 /system/lib/libc.so
09-30 14:29:48.140: INFO/DEBUG(195): bed1b338 00000001
09-30 14:29:48.140: INFO/DEBUG(195): bed1b33c bed1b36c
09-30 14:29:48.140: INFO/DEBUG(195): bed1b340 46e98e30
09-30 14:29:48.140: INFO/DEBUG(195): bed1b344 0000a000
09-30 14:29:48.140: INFO/DEBUG(195): bed1b348 bed1b3b8
09-30 14:29:48.140: INFO/DEBUG(195): bed1b34c afd1855b /system/lib/libc.so
09-30 14:29:48.140: INFO/DEBUG(195): bed1b350 df002777
09-30 14:29:48.140: INFO/DEBUG(195): bed1b354 e3a070ad
09-30 14:29:48.140: INFO/DEBUG(195): #00 bed1b358 0000005f
09-30 14:29:48.140: INFO/DEBUG(195): bed1b35c 0000002e
09-30 14:29:48.140: INFO/DEBUG(195): bed1b360 002c9e80
09-30 14:29:48.140: INFO/DEBUG(195): bed1b364 824ee99c
09-30 14:29:48.140: INFO/DEBUG(195): bed1b368 46e98e30
09-30 14:29:48.140: INFO/DEBUG(195): bed1b36c fffffbdf
09-30 14:29:48.140: INFO/DEBUG(195): bed1b370 bed1b3b8
09-30 14:29:48.140: INFO/DEBUG(195): bed1b374 afd46470
09-30 14:29:48.140: INFO/DEBUG(195): bed1b378 824ee99c
09-30 14:29:48.140: INFO/DEBUG(195): bed1b37c afd13679 /system/lib/libc.so
09-30 14:29:48.140: INFO/DEBUG(195): #01 bed1b380 002c9e80
09-30 14:29:48.144: INFO/DEBUG(195): bed1b384 824ee99c
09-30 14:29:48.144: INFO/DEBUG(195): bed1b388 bed1b488
09-30 14:29:48.144: INFO/DEBUG(195): bed1b38c 44295ddc
09-30 14:29:48.144: INFO/DEBUG(195): bed1b390 bed1b3b8
09-30 14:29:48.144: INFO/DEBUG(195): bed1b394 afd1453d /system/lib/libc.so