2010-12-21 4 views
2

내 애플리케이션에서 스트리밍 비디오 (RTSP 프로토콜을 통해)를 재생할 수 있기를 원합니다. 열린 RTSP 스트림을 찾았습니다 : rtsp://red7blue.de/Primetime 그리고 재생하려고했습니다. 하지만 비디오를 재생하려고 할 때 SIGILL 신호로 내 응용 프로그램이 종료되었습니다. 나는 libffmpeg.so를 사용하고 있으며, SIGILL 시그널의 원인은이 라이브러리의 코드에있다. 내가 로그에 뭐가에서 봐 : SIGILL 신호가 내 Android 앱에 전송되었습니다.

D/dalvikvm( 217): Trying to load lib /data/data/my.apps.package/lib/libffmpeg.so 0x43757d68 
D/dalvikvm( 217): Added shared lib /data/data/my.apps.package/lib/libffmpeg.so 0x43757d68 
D/dalvikvm( 217): No JNI_OnLoad found in /data/data/my.apps.package/lib/libffmpeg.so 0x43757d68 
D/dalvikvm( 217): Trying to load lib /data/data/my.apps.package/lib/libplayer-4.so 0x43757d68 
D/dalvikvm( 217): Added shared lib /data/data/my.apps.package/lib/libplayer-4.so 0x43757d68 
D/PlayerActivity( 217): FILE TO OPEN: rtsp://red7blue.de/Primetime 
D/dalvikvm( 217): +++ not scanning '/system/lib/libwebcore.so' for 'open' (wrong CL) 
D/dalvikvm( 217): +++ not scanning '/system/lib/libexif.so' for 'open' (wrong CL) 
D/dalvikvm( 217): +++ not scanning '/system/lib/libFFTEm.so' for 'open' (wrong CL) 
I/DEBUG ( 27): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
I/DEBUG ( 27): Build fingerprint: 'generic/sdk/generic/:1.6/Donut/20842:eng/test-keys' 
I/DEBUG ( 27): pid: 217, tid: 217 >>> my.apps.package <<< 
I/DEBUG ( 27): signal 4 (SIGILL), fault addr 81337fb0 
I/DEBUG ( 27): r0 00000000 r1 00000000 r2 00000001 r3 00000001 
I/DEBUG ( 27): r4 00000001 r5 00000000 r6 00000000 r7 00000000 
I/DEBUG ( 27): r8 7fffffff r9 00000000 10 00000000 fp 20000000 
I/DEBUG ( 27): ip 00000000 sp bee438a0 lr 81337f68 pc 81337fb0 cpsr 80000010 
I/DEBUG ( 27):   #00 pc 00337fb0 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #01 pc 00338564 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #02 pc 003368b8 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #03 pc 00079f74 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #04 pc 0007a040 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #05 pc 002c5780 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #06 pc 002d6bc4 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #07 pc 002c67d0 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #08 pc 003110a0 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #09 pc 00317ac4 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #10 pc 003197bc /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #11 pc 00316d04 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #12 pc 00319448 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #13 pc 002c67d0 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #14 pc 002c6fe0 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):   #15 pc 00004a28 /data/data/my.apps.package/lib/libplayer-4.so 
I/DEBUG ( 27):   #16 pc 00007d08 /data/data/my.apps.package/lib/libplayer-4.so 
I/DEBUG ( 27):   #17 pc 0000e434 /system/lib/libdvm.so 
I/DEBUG ( 27):   #18 pc 00040b0e /system/lib/libdvm.so 
I/DEBUG ( 27):   #19 pc 000432b6 /system/lib/libdvm.so 
I/DEBUG ( 27):   #20 pc 00013198 /system/lib/libdvm.so 
I/DEBUG ( 27):   #21 pc 00017be4 /system/lib/libdvm.so 
I/DEBUG ( 27):   #22 pc 0001762c /system/lib/libdvm.so 
I/DEBUG ( 27):   #23 pc 000529a8 /system/lib/libdvm.so 
I/DEBUG ( 27):   #24 pc 00059eda /system/lib/libdvm.so 
I/DEBUG ( 27):   #25 pc 00013198 /system/lib/libdvm.so 
I/DEBUG ( 27):   #26 pc 00017be4 /system/lib/libdvm.so 
I/DEBUG ( 27):   #27 pc 0001762c /system/lib/libdvm.so 
I/DEBUG ( 27):   #28 pc 0005282c /system/lib/libdvm.so 
I/DEBUG ( 27):   #29 pc 0003f790 /system/lib/libdvm.so 
I/DEBUG ( 27):   #30 pc 00031caa /system/lib/libdvm.so 
I/DEBUG ( 27):   #31 pc 0002a804 /system/lib/libandroid_runtime.so 
I/DEBUG ( 27): stack: 
I/DEBUG ( 27):  bee43860 00000000 
I/DEBUG ( 27):  bee43864 00000000 
I/DEBUG ( 27):  bee43868 20000000 
I/DEBUG ( 27):  bee4386c 8135cb94 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43870 20000000 
I/DEBUG ( 27):  bee43874 00000000 
I/DEBUG ( 27):  bee43878 00000000 
I/DEBUG ( 27):  bee4387c 20000000 
I/DEBUG ( 27):  bee43880 00000000 
I/DEBUG ( 27):  bee43884 00000000 
I/DEBUG ( 27):  bee43888 00000000 
I/DEBUG ( 27):  bee4388c 8135ca5c /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43890 bee43898 [stack] 
I/DEBUG ( 27):  bee43894 81337f68 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43898 df002777 
I/DEBUG ( 27):  bee4389c e3a070ad 
I/DEBUG ( 27): #00 bee438a0 00000000 
I/DEBUG ( 27):  bee438a4 00000000 
I/DEBUG ( 27):  bee438a8 00000000 
I/DEBUG ( 27):  bee438ac 00000000 
I/DEBUG ( 27):  bee438b0 3ff00000 
I/DEBUG ( 27):  bee438b4 afc1d8f4 /system/lib/libm.so 
I/DEBUG ( 27):  bee438b8 afc1d868 /system/lib/libm.so 
I/DEBUG ( 27):  bee438bc 001f750c [heap] 
I/DEBUG ( 27):  bee438c0 8146ab20 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee438c4 0000001c 
I/DEBUG ( 27):  bee438c8 8b9e9309 
I/DEBUG ( 27):  bee438cc 8b9e9309 
I/DEBUG ( 27):  bee438d0 3fa56e5f 
I/DEBUG ( 27):  bee438d4 afc0e3bc /system/lib/libm.so 
I/DEBUG ( 27):  bee438d8 2d87a4ea 
I/DEBUG ( 27):  bee438dc 00000000 
I/DEBUG ( 27):  bee438e0 00000000 
I/DEBUG ( 27):  bee438e4 bee43928 [stack] 
I/DEBUG ( 27):  bee438e8 bee4392c [stack] 
I/DEBUG ( 27):  bee438ec ffffffbe 
I/DEBUG ( 27):  bee438f0 00000000 
I/DEBUG ( 27):  bee438f4 bee43928 [stack] 
I/DEBUG ( 27):  bee438f8 bee4392c [stack] 
I/DEBUG ( 27):  bee438fc bee43968 [stack] 
I/DEBUG ( 27):  bee43900 00000000 
I/DEBUG ( 27):  bee43904 7fffffff 
I/DEBUG ( 27):  bee43908 00000000 
I/DEBUG ( 27):  bee4390c 00000000 
I/DEBUG ( 27):  bee43910 20000000 
I/DEBUG ( 27):  bee43914 81338568 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27): #01 bee43918 00000001 
I/DEBUG ( 27):  bee4391c 00000000 
I/DEBUG ( 27):  bee43920 7fffffff 
I/DEBUG ( 27):  bee43924 00000000 
I/DEBUG ( 27):  bee43928 8145fe10 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee4392c 81336698 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43930 00000001 
I/DEBUG ( 27):  bee43934 8146ab50 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43938 001f74f0 [heap] 
I/DEBUG ( 27):  bee4393c 00000000 
I/DEBUG ( 27):  bee43940 00000000 
I/DEBUG ( 27):  bee43944 bee43968 [stack] 
I/DEBUG ( 27):  bee43948 7fffffff 
I/DEBUG ( 27):  bee4394c 8145fe34 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43950 8145fe10 /data/data/my.apps.package/lib/libffmpeg.so 
I/DEBUG ( 27):  bee43954 813368bc /data/data/my.apps.package/lib/libffmpeg.so 
D/Zygote ( 29): Process 217 terminated by signal (4) 
I/ActivityManager( 65): Process my.apps.package (pid 217) has died. 
I/WindowManager( 65): WIN DEATH: Window{43846460 my.apps.package/my.apps.package.MainActivity paused=false} 

내가 SIGILL 신호의 원인 중 하나를 추측으로

특권 명령을 수행 할 수있는 시도 할 수있다. RTSP는 네트워크 프로토콜입니다. ffmpeg.so가 네트워크를 사용하여 미디어 스트림에 액세스하려고합니다. 어쩌면 몇 가지 특수 권한을 지정해야합니까? 내 앱에서 유일한 명시 적 권한이 있습니다. android.permission.INTERNET 다른 것을 지정해야합니까?

답변

1

arm-eabi-objdump를 사용하면 libplayer-4.so 및 libffmpeg.so를 디스 어셈블 할 수 있습니다. 주소를 확인하려면 7d08, 4a2b는 libplayer-4.so, 2c6fe0은 libffmpeg에 있습니다.

주소를 찾은 후 레이블을 찾으십시오. 함수 이름입니다.

+0

제안 해 주셔서 감사합니다. 나는 다른 문제가 도움이되지 않으면 내 문제를 해결할 마지막 기회로 이것을 할 것입니다. 나는 dissassembled하게 된 목록과 C - 소스의 intricacies를 파헤 치기 위해 나는 쉰다라고 확신하지 않는다. 그래서 먼저 더 높은 수준의 조사와 실험을 시도 할 것입니다. – Alexander

2

같은 오류가 발생했습니다. 곧 armv-7 플랫폼 용 프로그램을 컴파일하고 arm v5에서 runnig를 시도했기 때문에 문제가 있음을 깨달았습니다. Application.mk에서 다음과 같은 부분을 언급 할 수 있습니다. #APP_ABI : = armeabi-v7a

관련 문제