I have found the reason that the hardware didn't support this WMV file , so i disable the hardware decoding and problem fix.
On Thu, Sep 6, 2012 at 10:35 AM, 王鑫 <[email protected]> wrote: > I have a wmv file (about 130MB) in the sd card, i reset and reboot the > device , the mediaserver process will occupy 90%+ cpu and keep that status > until the battery dry out. > > I used gdb to debug the mediaserver process, but it seems I can't get the > all threads info, normally I just can see one thread. At one time, I get > all the thread info occasionally, and I will attach them below. > > It's odd that I wrote some debug log info in the code but the log can't > output, it seems the stack below may not belong my problematic wmv file but > some files in the phone. > > I am sorry I can't attach that wmv file for it's too large comparing to > the permission of gmail. > > > > (gdb) info threads >> 9 Thread 715 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> 8 Thread 714 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 7 Thread 713 0x84963b44 in BS_flush16 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> 6 Thread 712 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 5 Thread 199 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> 4 Thread 198 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 3 Thread 197 0xffff0520 in ?? () >> 2 Thread 196 0xffff0520 in ?? () >> * 1 Thread 96 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> (gdb) >> (gdb) t 1 >> [Switching to thread 1 (Thread 96)]#0 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 200 ldmia sp!, {r4, r7} >> (gdb) bt >> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x2043c, >> mutex=0x20424, reltime=0x0) at bionic/libc/bionic/pthread.c:1451 >> #2 0x80212338 in __pthread_cond_timedwait (cond=0x2043c, mutex=0x20424, >> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474 >> #3 0x8386d926 in android::Condition::wait (this=0x20360, >> buffer=0xbebd3a28, >> options=<value optimized out>) >> at frameworks/base/include/utils/threads.h:451 >> #4 android::OMXCodec::read (this=0x20360, buffer=0xbebd3a28, >> options=<value optimized out>) >> at frameworks/base/media/libstagefright/OMXCodec.cpp:4244 >> #5 0x83874c60 in extractVideoFrameWithCodecFlags ( >> client=<value optimized out>, trackMeta=..., source=..., flags=1, >> frameTimeUs=-1, seekMode=2) >> at >> frameworks/base/media/libstagefright/StagefrightMetadataRetriever.cpp:316 >> #6 0x83875086 in android::StagefrightMetadataRetriever::getFrameAtTime ( >> this=<value optimized out>, timeUs=-1, option=2) >> at >> frameworks/base/media/libstagefright/StagefrightMetadataRetriever.cpp:447 >> #7 0x8221a9ec in android::MetadataRetrieverClient::getFrameAtTime ( >> this=0xebf0, timeUs=-1, option=2) >> at >> frameworks/base/media/libmediaplayerservice/MetadataRetrieverClient.cpp:2---Type >> <return> to continue, or q <return> to quit--- >> 10 >> #8 0x80942886 in android::BnMediaMetadataRetriever::onTransact >> (this=0xebf0, >> code=<value optimized out>, data=<value optimized out>, >> reply=0xbebd3b60, >> flags=16) at >> frameworks/base/media/libmedia/IMediaMetadataRetriever.cpp:210 >> #9 0x80817566 in android::BBinder::transact (this=0xebf4, code=4, >> data=..., >> reply=0xbebd3b60, flags=16) at >> frameworks/base/libs/binder/Binder.cpp:107 >> #10 0x8081a72c in android::IPCThreadState::executeCommand (this=0xab50, >> cmd=<value optimized out>) >> at frameworks/base/libs/binder/IPCThreadState.cpp:1012 >> #11 0x8081a90e in android::IPCThreadState::joinThreadPool (this=0xab50, >> isMain=true) at frameworks/base/libs/binder/IPCThreadState.cpp:457 >> #12 0x00008bda in main (argc=<value optimized out>, argv=<value optimized >> out>) >> at frameworks/base/media/mediaserver/main_mediaserver.cpp:66 >> (gdb) t 2 >> [Switching to thread 2 (Thread 196)]#0 0xffff0520 in ?? () >> (gdb) bt >> #0 0xffff0520 in ?? () >> Cannot access memory at address 0x69647538 >> (gdb) t 3 >> [Switching to thread 3 (Thread 197)]#0 0xffff0520 in ?? () >> (gdb) bt >> #0 0xffff0520 in ?? () >> Cannot access memory at address 0x69647538 >> (gdb) t 3 >> [Switching to thread 3 (Thread 197)]#0 0xffff0520 in ?? () >> (gdb) bt >> #0 0xffff0520 in ?? () >> (gdb) t 4 >> [Switching to thread 4 (Thread 198)]#0 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 200 ldmia sp!, {r4, r7} >> (gdb) bt >> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0xcd00, >> mutex=0xccfc, reltime=0x0) at bionic/libc/bionic/pthread.c:1451 >> #2 0x80212338 in __pthread_cond_timedwait (cond=0xcd00, mutex=0xccfc, >> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474 >> #3 0x8002b154 in android::Condition::wait (this=0xccd8) >> at frameworks/base/include/utils/threads.h:451 >> #4 android::AudioFlinger::MixerThread::threadLoop (this=0xccd8) >> at frameworks/base/services/audioflinger/AudioFlinger.cpp:1861 >> #5 0x8061d6ae in android::Thread::_threadLoop (user=<value optimized >> out>) >> at frameworks/base/libs/utils/Threads.cpp:770 >> #6 0x8061dc0c in thread_data_t::trampoline (t=<value optimized out>) >> at frameworks/base/libs/utils/Threads.cpp:127 >> #7 0x802129f8 in __thread_entry ( >> func=0x8061db79 <thread_data_t::trampoline(thread_data_t const*)>, >> arg=0xc8a0, tls=<value optimized out>) at >> bionic/libc/bionic/pthread.c:207 >> #8 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0xbebd3884, >> start_routine=0x8061db79 <thread_data_t::trampoline(thread_data_t >> const*)>, arg=0xc8a0) at bionic/libc/bionic/pthread.c:343 >> #9 0x00000000 in ?? () >> (gdb) t 5 >> [Switching to thread 5 (Thread 199)]#0 __ioctl () >> at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> 15 ldmfd sp!, {r4, r7} >> (gdb) bt >> #0 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> #1 0x80227230 in ioctl (fd=<value optimized out>, request=8) >> at bionic/libc/bionic/ioctl.c:41 >> #2 0x80819f14 in android::IPCThreadState::talkWithDriver (this=0x104b0, >> doReceive=true) at frameworks/base/libs/binder/IPCThreadState.cpp:791 >> #3 0x8081a8f0 in android::IPCThreadState::joinThreadPool (this=0x104b0, >> isMain=true) at frameworks/base/libs/binder/IPCThreadState.cpp:446 >> #4 0x8081fe88 in android::PoolThread::threadLoop (this=0xc7a8) >> at frameworks/base/libs/binder/ProcessState.cpp:69 >> #5 0x8061d6ae in android::Thread::_threadLoop (user=<value optimized >> out>) >> at frameworks/base/libs/utils/Threads.cpp:770 >> #6 0x8061dc0c in thread_data_t::trampoline (t=<value optimized out>) >> at frameworks/base/libs/utils/Threads.cpp:127 >> #7 0x802129f8 in __thread_entry ( >> func=0x8061db79 <thread_data_t::trampoline(thread_data_t const*)>, >> arg=0xeae8, tls=<value optimized out>) at >> bionic/libc/bionic/pthread.c:207 >> #8 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0xbebd3b7c, >> start_routine=0x8061db79 <thread_data_t::trampoline(thread_data_t >> const*)>, arg=0xeae8) at bionic/libc/bionic/pthread.c:343 >> #9 0x00000000 in ?? () >> (gdb) t 6 >> [Switching to thread 6 (Thread 712)]#0 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 200 ldmia sp!, {r4, r7} >> (gdb) bt >> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x2d974, >> mutex=0x2d970, reltime=0x0) at bionic/libc/bionic/pthread.c:1451 >> #2 0x80212338 in __pthread_cond_timedwait (cond=0x2d974, mutex=0x2d970, >> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474 >> #3 0x84701e2c in MM_SignalQ_Wait (handle=0x2d6e0, ppvUserArg=0x40094ed4) >> at vendor/qcom/proprietary/mm-osal/./src/MMSignal.c:268 >> #4 0x84618c94 in FileSourceHelper::SourceThread (this=0x2d0b0) >> at >> vendor/qcom/proprietary/mm-parser/main/FileSource/src/filesourcehelper.cpp:3690 >> #5 0x84618cd4 in FileSourceHelper::SourceThreadEntry (ptr=0x2d0b0) >> at >> vendor/qcom/proprietary/mm-parser/main/FileSource/src/filesourcehelper.cpp:3667 >> #6 0x802129f8 in __thread_entry ( >> func=0x84618ccd <FileSourceHelper::SourceThreadEntry(void*)>, >> arg=0x2d0b0, >> tls=<value optimized out>) at bionic/libc/bionic/pthread.c:207 >> #7 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0xbebd382c, >> start_routine=0x84618ccd >> <FileSourceHelper::SourceThreadEntry(void*)>, >> arg=0x2d0b0) at bionic/libc/bionic/pthread.c:343 >> #8 0x00000000 in ?? () >> (gdb) t 7 >> [Switching to thread 7 (Thread 713)]#0 0x84963b44 in BS_flush16 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> (gdb) bt >> #0 0x84963b44 in BS_flush16 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #1 0x8494a52c in BS_getBits () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #2 0x849315f0 in decodeBitsOfESCCode () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #3 0x84990d98 in DecodeInverseIntraBlockQuantizeInterlace411 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #4 0x84991920 in DecodeIntraBlockYInterlace411 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #5 0x84991fb8 in DecodeFrameIMBInterlace411 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #6 0x84992404 in decodeIInterlace411 () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #7 0x84962aa4 in WMVideoDecDecodeDataInternal () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_v---Type >> <return> to continue, or q <return> to quit--- >> icuna/symbols/system/lib/libOmxWmvDec.so >> #8 0x8496318c in WMVideoDecDecodeData () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #9 0x849311f8 in WMVDecoder::Decode(VDEC_INPUT_BUFFER*, bool) () >> from >> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so >> #10 0x84920c7c in VideoDecoder::Decode (this=<value optimized out>, >> input=0x40f61cbc, checkBufAvail=false) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/vdecoder_i.cpp:84 >> #11 0x84922c2a in vdec_post_input_buffer (dec=<value optimized out>, >> frame=<value optimized out>, cookie=0x2e9d8) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/vdec.cpp:913 >> #12 0x84927828 in omx_vdec::push_one_input_buffer (this=0x3cf98, >> buffer=0x2e9d8) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:6149 >> #13 0x8492a346 in omx_vdec::empty_this_buffer_proxy (this=0x3cf98, >> hComp=<value optimized out>, buffer=0x2e9d8) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:5361 >> ---Type <return> to continue, or q <return> to quit--- >> #14 0x8492a3ec in omx_vdec::empty_this_buffer_proxy_frame_based >> (this=0x3cf98, >> hComp=0x3cf9c, buffer=0x2e9d8) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:5022 >> #15 0x8492bd20 in omx_vdec::process_event_cb (ctxt=<value optimized out>, >> id=8 '\b') >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:1233 >> #16 0x8492bdfc in message_thread (input=<value optimized out>) >> at >> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:211 >> #17 0x802129f8 in __thread_entry (func=0x8492bdbd >> <message_thread(void*)>, >> arg=0x3cf98, tls=<value optimized out>) at >> bionic/libc/bionic/pthread.c:207 >> #18 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0x80238d28, start_routine=0x8492bdbd <message_thread(void*)>, >> arg=0x3cf98) at bionic/libc/bionic/pthread.c:343 >> #19 0x00000000 in ?? () >> (gdb) t 8 >> [Switching to thread 8 (Thread 714)]#0 __futex_syscall3 () >> at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> 200 ldmia sp!, {r4, r7} >> (gdb) bt >> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200 >> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x19cf4, >> mutex=0x19ce8, reltime=0x0) at bionic/libc/bionic/pthread.c:1451 >> #2 0x80212338 in __pthread_cond_timedwait (cond=0x19cf4, mutex=0x19ce8, >> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474 >> #3 0x83e0a7b4 in android::Condition::wait (this=0x19ce0) >> at frameworks/base/include/utils/threads.h:451 >> #4 android::OMX::CallbackDispatcher::threadEntry (this=0x19ce0) >> at frameworks/base/media/libstagefright/omx/OMX.cpp:135 >> #5 0x83e0a806 in android::OMX::CallbackDispatcher::ThreadWrapper ( >> me=0xfffffe00) at frameworks/base/media/libstagefright/omx/OMX.cpp:120 >> #6 0x802129f8 in __thread_entry ( >> func=0x83e0a801 >> <android::OMX::CallbackDispatcher::ThreadWrapper(void*)>, >> arg=0x19ce0, tls=<value optimized out>) at >> bionic/libc/bionic/pthread.c:207 >> #7 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0xbebd3890, >> start_routine=0x83e0a801 >> <android::OMX::CallbackDispatcher::ThreadWrapper(void*)>, arg=0x19ce0) at >> bionic/libc/bionic/pthread.c:343 >> #8 0x00000000 in ?? () >> (gdb) t 9 >> [Switching to thread 9 (Thread 715)]#0 __ioctl () >> at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> 15 ldmfd sp!, {r4, r7} >> (gdb) bt >> #0 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15 >> #1 0x80227230 in ioctl (fd=<value optimized out>, request=0) >> at bionic/libc/bionic/ioctl.c:41 >> #2 0x84a0094a in adsp_task_event (data=0x84a021a4) >> at vendor/qcom/proprietary/mm-core/adspsvc/src/adsprtossvc.c:174 >> #3 0x802129f8 in __thread_entry (func=0x84a008f9 <adsp_task_event>, >> arg=0x84a021a4, tls=<value optimized out>) >> at bionic/libc/bionic/pthread.c:207 >> #4 0x802125c4 in pthread_create (thread_out=<value optimized out>, >> attr=0x80238d28, start_routine=0x84a008f9 <adsp_task_event>, >> arg=0x84a021a4) at bionic/libc/bionic/pthread.c:343 >> #5 0x00000000 in ?? () >> (gdb) > > > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

