请好好执行一下我对这个问题的描述。在Jelly bean中启用硬件编码器4.1.1划艇DM3730
我有DM3730处理器定制电路板,并从
http://code.google.com/p/rowboat/wiki/JellybeanOnBeagleboard_WithSGX
目的建立的Android划艇:能够提供硬件解码器。
2.1)为此,我需要OMAX-IL接口。因此查看了从TI下载的源代码。但我没有找到代表OMX实现的omap3/目录下的hardware/ti/。
2.2),因此,从AOSP果冻豆代码下载到:
git clone https://android.googlesource.com/platform/hardware/ti/omap3 -b jb-release
2.3)根据https://source.android.com/devices/media.html
* I could build libstagefrighthw.so, libOMX_Core.so, OMX.TI.Video.Decoder.so [ ofcourse with commenting some error lines..]
2.4)变更media_codec.xml保持以下条目:
<MediaCodec name="OMX.TI.Video.Decoder" type="video/avc"/>
2.5)建立了DSP协议荷兰国际集团为[注:我花了最新] IE:DVSDK
http://code.google.com/p/rowboat/wiki/DSP#Instruction_Difference_for_Build_and_Run_Froyo+DSP
Instead of
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/4_01_00_09/index_FDS.html
took new version of dvsdk from below link;
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html
首先想到的,想确认是否是正确的做法?或 我需要注意哪些其他基础?
我在哪里碰到?
1) DSP Layer generates two device files /dev/dsplink and /dev/cmem.
whereas the dspbridge in omap3/ tries to communicate with /dev/DspBridge.
Hence i created symbolic link to /dev/DspBridge to /dev/dsplink.
2) Found the below Flow right from the framework.
1) OMXMaster Loads libstagefrighthw.so, and get the Plugin Instance.
2) Plugin Instance loads libOMX_Core.so.
3) Now the Component libOMX.TI.Video.Decode is detected,
3) I tried two things:
3.1) Getting into gallery: I got into the below issue while accessing album.
D/TIOMX_CORE(1068): Found component OMX.TI.Video.Decoder with refCount 0
I/TI_Video_Decoder(1068): TI Video Decoder
I/OMXCodec(1068): [OMX.TI.Video.Decoder] AVC profile = 100 (High), level = 31
I/OMXCodec(1068): [OMX.TI.Video.Decoder] video dimensions are 1280 x 720
D/TI_Video_Decoder(1068): VIDDEC_SendCommand: Received request from omx client to change state to 2
D/TI_Video_Decoder(1068): Handle request for state transition: 1 => OMX_StateIdle
D/TI_Video_Decoder(1068): VIDDEC_InitDSP_H264Dec():7191 LCML_InitMMCodec Failed!...80001009
D/TI_Video_Decoder(1068): VIDDEC_HandleCommand():2584 LCML Error 1
E/OMXCodec(1068): [OMX.TI.Video.Decoder] ERROR(0x80001009, 2)
W/StagefrightMetadataRetriever(1068): OMXCodec::start returned error -2147483648 (0x80000000)
D/dalvikvm(1672): GC_FOR_ALLOC freed 52K, 4% free 6911K/7175K, paused 16ms, total 19ms
E/libEGL (1672): called unimplemented OpenGL ES API
E/libEGL (1672): called unimplemented OpenGL ES API
I/ARMAssembler(1672): generated scanline__00000177:03010104_00008001_00000000 [105 ipp] (129 ins) at [0x5e32c7e8:0x5e32c9ec] in 183106 ns
E/libEGL (1672): called unimplemented OpenGL ES API
E/WVMExtractor(1068): Failed to open libwvm.so
E/MetadataRetrieverClient(1068): failed to extract an album art
E/MediaMetadataRetrieverJNI(1672): getEmbeddedPicture: Call to getEmbeddedPicture failed.
D/TIOMX_CORE(1068): Found component OMX.TI.Video.Decoder with refCount 1
E/TIOMX_CORE(1068): Max instances of component OMX.TI.Video.Decoder already created.
D/TIOMX_CORE(1068): Found component OMX.TI.Video.Decoder with refCount 1
E/TIOMX_CORE(1068): Max instances of component OMX.TI.Video.Decoder already created.
E/MetadataRetrieverClient(1068): failed to capture a video frame
E/MediaMetadataRetrieverJNI(1672): getFrameAtTime: videoFrame is a NULL pointer
W/ImageCacheRequest(1672): decode orig failed /local/video/item/41,MICROTHUMB
D/TI_Video_Decoder(1068): VIDDEC_GetState():2334 VIDDEC_GetState timed out
D/TIOMX_CORE(1068): Found matching pHandle(0x41d805e0) at index 1 with refCount 1
D/TIOMX_CORE(1068): Found component OMX.TI.Video.Decoder with refCount 0
I/TI_Video_Decoder(1068): TI Video Decoder
I/OMXCodec(1068): [OMX.TI.Video.Decoder] AVC profile = 100 (High), level = 31
I/OMXCodec(1068): [OMX.TI.Video.Decoder] video dimensions are 1280 x 720
F/MPEG4Extractor(1068): frameworks/av/media/libstagefright/MPEG4Extractor.cpp:1936 CHECK(!mStarted) failed.
F/libc (1068): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 1068 (mediaserver)
I/DEBUG (1064): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG (1064): Build fingerprint: 'Android/omap3evm/omap3evm:4.1.2/JZO54K/eng.ramprakash.20140407.195934:userdebug/test-keys'
I/DEBUG (1064): pid: 1068, tid: 1068, name: mediaserver >>> /system/bin/mediaserver <<<
I/DEBUG (1064): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG (1064): r0 00000027 r1 deadbaad r2 000000a2 r3 00000000
I/DEBUG (1064): r4 00000000 r5 be89f504 r6 41d8eb30 r7 00000000
I/DEBUG (1064): r8 41d8eb30 r9 00000002 sl ffffffff fp ffffffff
I/DEBUG (1064): ip fffd2bec sp be89f500 lr 400ee9e9 pc 400eb086 cpsr 60000030
I/DEBUG (1064): d0 2f616964656d2f66 d1 6567617473626961
I/DEBUG (1064): d2 4d2f746867697269 d3 727478453447456c
失败是
D/TI_Video_Decoder(1068): VIDDEC_InitDSP_H264Dec():7191 LCML_InitMMCodec Failed!...80001009
3.2运行带有媒体播放高清晰度视频。以下是logcat。
D/TIOMX_CORE(1723): Found component OMX.TI.Video.Decoder with refCount 0
I/TI_Video_Decoder(1723): TI Video Decoder
D/TI_Video_Decoder(1723): OMX_ComponentInit():377 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():832 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():836 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():839 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():842 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():851 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():880 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():918 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():928 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():937 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():945 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():950 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():957 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():963 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():981 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():999 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():1007 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():1046 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():1083 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Load_Defaults():1136 INIT_STRUCT Major 0x1 Minor 0x0 nRevision 0x0 nStep 0x0
D/TI_Video_Decoder(1723): VIDDEC_Start_ComponentThread():1423 +++ENTERING
D/TI_Video_Decoder(1723): VIDDEC_Start_ComponentThread():1486 ---EXITING(0x0)
I/OMXCodec(1723): [OMX.TI.Video.Decoder] AVC profile = 100 (High), level = 31
D/TI_Video_Decoder(1723): VIDDEC_GetParameter():964 eCompressionFormat = OMX_VIDEO_CodingH263
D/TI_Video_Decoder(1723): VIDDEC_GetParameter():970 eCompressionFormat = OMX_VIDEO_CodingAVC
D/TI_Video_Decoder(1723): VIDDEC_SetParameter():1257 eCompressionFormat = OMX_VIDEO_CodingAVC
D/TI_Video_Decoder(1723): VIDDEC_SetParameter():1346 Set i/p size: 1280x544
D/TI_Video_Decoder(1723): VIDDEC_SetParameter():1356 Set OUT/p size: 1280x544
D/TI_Video_Decoder(1723): VIDDEC_SetParameter():1346 Set i/p size: 1280x544
I/OMXCodec(1723): [OMX.TI.Video.Decoder] video dimensions are 1280 x 544
E/OMXNodeInstance(1723): OMX_GetExtensionIndex failed
D/TI_Video_Decoder(1723): VIDDEC_Stop_ComponentThread():1514 +++ENTERING
D/TI_Video_Decoder(1723): VIDDEC_Stop_ComponentThread():1681 ---EXITING(0x0)
D/TIOMX_CORE(1723): Found matching pHandle(0x40b14d00) at index 0 with refCount 1
E/MediaPlayer(1696): error (1, -2147483648)
E/MediaPlayer(1696): Error (1,-2147483648)
D/VideoView(1696): Error: 1,-2147483648
我试着用#dspexec -v
说完看着libdspbridge的代码,它会打开设备文件/ dev/DSPLINK和emumerates设备[我不知道它是做什么] , 但由于将ioctl发送到设备,因此emumeration失败。
http://androidxref.com/4.1.1/xref/hardware/ti/omap3/dspbridge/libbridge/dsptrap.c
DSPTRAP_Trap返回dwResult为-1。
请指出我的问题在哪里?
UPDATE:
发现:
1)DSP桥,DSP链接两位车手是不同的,这是DSP链接建立的DSP,以及我与DSP努力-桥。
我在过去几年没有尝试过TI板卡。从“OMX”层报告的错误,即0x80001009属于硬件错误,可以从http://androidxref.com/4.4.2_r2/xref/frameworks/native/include/media/openmax/OMX_Core.h#中看到。 176。请尝试检查是否有实用程序来验证底层硬件驱动程序是否正常工作。 – Ganesh