아직도 ffmpeg과 씨름중인 타조군입니다.

 

영상 출력과 여러 영상 동시 출력까지 성공 하였습니다.

이번 주말까지 완료라 다되어 가는구나 했는데 마지막에 복병을 만나네요.

 

ffmpeg을 이용해서 영상출력하다가 종료를 시키면 아래의 로그를 남기며 앱이 완전 종료되어 버립니다.

03-28 13:51:54.697: I/DEBUG(1437): Build fingerprint: 'generic/broadcom_cmp/cmp/:2.2/FRF91/113:jp/release'
03-28 13:51:54.697: I/DEBUG(1437): pid: 4221, tid: 4221  >>> net.jbong.FFmpegBasic <<<
03-28 13:51:54.697: I/DEBUG(1437): signal 11 (SIGSEGV), fault addr 48cc132c
03-28 13:51:54.697: I/DEBUG(1437):  r0 03030303  r1 03030300  r2 48cc1328  r3 45c91028
03-28 13:51:54.697: I/DEBUG(1437):  r4 afd40328  r5 afd41724  r6 0000a000  r7 00000001
03-28 13:51:54.697: I/DEBUG(1437):  r8 81596d30  r9 4410ead4  10 4410eac0  fp 452090e8
03-28 13:51:54.697: I/DEBUG(1437):  ip 815956a4  sp bec99400  lr afd10538  pc afd0bb0a  cpsr 80000030
03-28 13:51:54.767: I/DEBUG(1437):          #00  pc 0000bb0a  /system/lib/libc.so
03-28 13:51:54.767: I/DEBUG(1437):          #01  pc 0000cd7e  /system/lib/libc.so
03-28 13:51:54.767: I/DEBUG(1437):          #02  pc 0044fedc  /data/data/net.jbong.FFmpegBasic/lib/libbasicplayer.so
03-28 13:51:54.777: I/DEBUG(1437):          #03  pc 0002faa8  /data/data/net.jbong.FFmpegBasic/lib/libbasicplayer.so
03-28 13:51:54.777: I/DEBUG(1437):          #04  pc 00011cf4  /system/lib/libdvm.so

-----------------------------------이하 생략 합니다.--------------------------------------------------------------------------------------


아래는 BasicPlayer.c에서 closeMovie함수 입니다.

여기서 첫번째, 두번째, 세번째 if문을 모두 주석처리하면 종료시에는 일단 넘어 갑니다.

하지만 재생 종료를 반복하다 보면 위와 같은 로그를 남기며 죽습니다.

 int closeMovie(int idx)
{
 int result = 0;
 if (g_ci[idx].gVideoBuffer != NULL) {
  free(g_ci[idx].gVideoBuffer);
  g_ci[idx].gVideoBuffer = NULL;
  result += 1;
 }
 
 if (g_ci[idx].gFrame != NULL){
  av_freep(g_ci[idx].gFrame);
  result += 2;
 }
 if (g_ci[idx].gFrameRGB != NULL){
  av_freep(g_ci[idx].gFrameRGB);
  result += 4;
 }
 if (g_ci[idx].gVideoCodecCtx != NULL) {
  avcodec_close(g_ci[idx].gVideoCodecCtx);
  g_ci[idx].gVideoCodecCtx = NULL;
  result += 8;
 }
 
 if (g_ci[idx].gFormatCtx != NULL) {
  av_close_input_file(g_ci[idx].gFormatCtx);
  g_ci[idx].gFormatCtx = NULL;
  result += 16;
 }
 return result;
}

혹시 저와 같은 문제를 해결 하셨거나 겪고 계신분 없으신가요?