在果冻豆4.1.1划艇DM3730启用硬件恩codeR [英] Enabling Hardware Encoder in Jelly bean 4.1.1 rowboat DM3730

查看:547
本文介绍了在果冻豆4.1.1划艇DM3730启用硬件恩codeR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请execuse我对这个问题的时间长一点的描述。

我有DM3730处理器定制电路板,并从

I have a custom board with DM3730 processor, and building android rowboat from

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

目的:启用硬件去codeR

OBJECTIVE: ENABLING HARDWARE DECODER.

2.1),对于这一点,我需要OMAX-IL接口。因此,看着从TI下载源$ C ​​$ C。但我不觉得 OMAP3 / 硬件目录/ TI / 这将重新presents OMX执行。

2.1) For that, I need OMAX-IL Interface. Hence looked at the source code downloaded from TI. But i do not find omap3/ directory under hardware/ti/ which represents OMX implementation.

2.2),因此,从AOSP果冻豆code下载方式:

2.2) Hence downloaded from AOSP Jelly Bean Code By:

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

2.5) Built the DSP according to [ Note: i took latest ] 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

首先想到的,想确认是否是正确的做法?要么
什么其他的,我需要知道的基础?

我在哪里挨打吗?

Where I Struck?

 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的。

3.2 Running High Definition Video with Media player. Below is the 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

I tried with #dspexec -v

说完看着libdspbridge的code,它会打开设备文件/ dev / DSPLINK和emumerates设备[我不知道它是做什么]
但emumeration失败,因为发送的ioctl到设备。

Having looked at the code of libdspbridge, it opens the device file /dev/dsplink, and emumerates the device [ i am not sure what it is doing], but emumeration fails because of sending ioctl to the device.

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

DSPTRAP_Trap返回dwResult为-1。

DSPTRAP_Trap returns dwResult as -1 .

请指出哪里我的问题是?

更新:

查找:

1)DSP桥,DSP链接两位车手是不同的,并且是专为DSP的链接,我与DSP桥尝试DSP。

1) dsp-bridge, dsp-link both drivers are different, and the DSP which is built for dsp-link, and i am trying with dsp-bridge.

推荐答案

当然,错误是由您具有连接的/ dev / DSPLINK到/ dev / DspBridge引起的。 DSPLINK是错误的驱动程序在这种情况下使用。你需要从你的内核的临时区域建立DspBridge,加钩用正确的baseimage.dof文件加载在init.rc的驱动程序,然后重试。

Certainly the error is caused by your having linked /dev/dsplink to /dev/DspBridge. Dsplink is the wrong driver to use in this case. You'll need to build DspBridge from the staging area of your kernel, add hooks to load the driver in init.rc with the correct baseimage.dof file, and try again.

这篇关于在果冻豆4.1.1划艇DM3730启用硬件恩codeR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆