我用dm8168开发板,想进行多路解码测试及应用。
现在采用的例子,为sdk中的例子,ti-ezsdk_dm816x-evm_5_05_02_00\component-sources\omx_05_02_00_48\examples\ti\omx\demos\decode,进行多线程改造而成。也就是每个线程运行一个这个例子,采用264解码,n个线程并行运行,264源从文件读取。
测试的结果,不知道什么原因,1080p的解码最多只能3路,4路都不行。720p只能4路,d1分辨率只能6路。这个和文档中差距较大,按文档说明,8168有3个hd加速,每个可以解码1080p60fps,可以多通道。按理是可以解码6路1080p30fps的。
解码4路1080p出现的现象为,执行到eError = OMX_SendCommand (pHandle, OMX_CommandStateSet, OMX_StateIdle, NULL);可以执行。OMX_AllocateBuffer为端口分配内存也可以执行。然后就到 eError = Decode_WaitForState (pHandle, OMX_StateIdle)。
就在eError = Decode_WaitForState (pHandle, OMX_StateIdle)的时候,三个线程都过了,打出state IDLE。第四个线程就不行了,就在这里卡住了,一直在等待。可能是在等待什么资源,然后就无反应了。有时候头三个线程还解码了几帧,但是一执行到第四个线程的 Decode_WaitForState,就没反应了。
请问这是什么问题。为端口分配内存OMX_AllocateBuffer已经通过了。我用d1分辨率做解码实验,就可以解6路,7路的时候,也是类似问题,第七个线程就不能等到state idle了。
root@dm816x-evm:/usr/share/ti/ti-omx# ./linsm_test_a8host_debug.xv5T -w 1920 -h 1080 -i test.264 -o test.yuv -c h264input file: test.264
width: 1920
height: 1080
output_file: test.yuv
codec: h264
Decoder example===============================
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
Iteration 0 – Start
Iteration 0 – Start
Iteration 0 – Start
Iteration 0 – Start
allocating field buffer calling getHandle allocating field buffer calling getHandle allocating field buffer calling getHandle allocating field buffer calling getHandleOutput port buffer size: 3637248
Depreciated API: TRACE:
Came back from send command without error
Output port buffer size: 3637248
Output port buffer size: 3637248
Output port buffer size: 3637248
Depreciated API: TRACE:
Came back from send command without error
Depreciated API: TRACE:
Came back from send command without error
Depreciated API: TRACE:
Came back from send command without error
wait state ! state IDLE wait state ! state IDLE wait state ! state IDLE就卡住了,只有三路返回了 stete IDLE,第四路只返回了Came back from send command without error,但是没有state IDLE返回。
Eason Wang:
ezsdk已经是nrnd了,请联系代理商获取DVRRDK做开发。
Chen Tao1:
回复 Eason Wang:
请问DVRRDK在哪里可以下载??
天睿视迅:
回复 Chen Tao1:
需要和ti签订NDA协议,找ti的代理商