2014-04-09 2 views
0

문제에 대한 자세한 설명은 친절하게 알려주십시오.Jelly bean 4.1.1 rowboat에서 하드웨어 인코더 활성화 DM3730

나는 DM3730 프로세서와 맞춤형 보드를 가지고 있고,

http://code.google.com/p/rowboat/wiki/JellybeanOnBeagleboard_WithSGX 

목적에서 안드로이드 노 젓는 보트를 구축 : 하드웨어 디코더를 가능하게.

2.1)이를 위해 OMAX-IL 인터페이스가 필요합니다. 따라서 TI에서 다운로드 한 소스 코드를 살펴 보았다. 그러나 나는 OMAP 구현을 나타내는 하드웨어/ti/하에 omap3/ 디렉토리를 찾지 못했습니다. 따라서 의해 AOSP 젤리 코드에서 다운로드

2.2) : 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)에 따르면

git clone https://android.googlesource.com/platform/hardware/ti/omap3 -b jb-release 

2.3) 아래의 항목을 유지하기 위해 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 

내가 libdspbridge의 코드를 보았다면서 #dspexec -v

과 노력, 디바이스 파일은/dev/DSPLink를를 열고 장치를 [나는 그것이 무엇을하고 있는지 잘 모르겠습니다] emumerates , 장치에 ioctl을 보내면 emumeration이 실패합니다.

http://androidxref.com/4.1.1/xref/hardware/ti/omap3/dspbridge/libbridge/dsptrap.c

는 DSPTRAP_Trap -1로 dwResult을 반환합니다.

내 문제는 어디에서 지적하고 있습니까?

UPDATE :

찾기 :

1) DSP 브리지, DSP 링크 두 드라이버는 다르며, DSP-링크 내장 된 DSP, 그리고 난 DSP를 시도하고있다 -다리.

+0

지난 몇 년 동안 TI 보드를 사용해 본적이 없습니다. 'OMX' 계층에서보고 된 오류 즉, '0x80001009'는 http://androidxref.com/4.4.2_r2/xref/frameworks/native/include/media/openmax/OMX_Core.h#에서 볼 수있는 하드웨어 오류와 관련이 있습니다. 176. 기본 HW 드라이버가 작동하는지 확인하는 유틸리티가 있는지 확인하십시오. – Ganesh

답변

0

확실히/dev/dspBridge에/dev/dsplink를 연결하면 오류가 발생합니다. Dsplink는이 경우에 사용할 잘못된 드라이버입니다. 커널의 스테이징 영역에서 DspBridge를 빌드하고 올바른 baseimage.dof 파일로 init.rc에 드라이버를로드하기위한 후크를 추가 한 다음 다시 시도해야합니다.

관련 문제