首页 > 代码库 > DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]

DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]

DM8168 custom board 成功启动系统之后想先测一下8168编解码功能,把开发包里的examples跑一遍。启动完成后,连上HDMI显示,在starting Matrix GUI application后HDMI已经有输出了,这时候优先选择了decode_display功能来测试。

root@8168:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i ../data/videos/dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0 -c h264
input file: dm816x_1080p_demo.264
width: 1920
height: 1080
frame_rate: 60
gfx: fbdev disable
codec: h264
display_id: 0
Decoder-Display example
===============================
OMX_Init completed
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
opening file
decoder compoenent is created
PADX: 32 PADY: 24
level set is 12
scalar compoenent is created
set input port params (width = 1920, height = 1080)
set output port params (width = 1920, height = 1080)
set number of channels
set input resolution
set output resolution
enable scalar input port
got eventEnable/Disable Event
enable scalar output port
got eventEnable/Disable Event
found handle 0x127f58 for component OMX.TI.VPSSM3.VFDC
got display handle
found handle 0x12ba60 for component OMX.TI.VPSSM3.CTRL.DC
Buffer Size computed: 4147200
set input port params (width = 1920, height = 1080)
setting input and output memory type to default
enable input port
got eventEnable/Disable Event
connect call for decoder-scalar
connect call for scalar-display
decoder inport buffers allocated
decoder outport buffers allocated
got eventState changed to: OMX_StateIdle
state IDLE
Scalar input port use buffer done
scalar outport buffers allocated
got eventState changed to: OMX_StateIdle
scalar state IDLE
got eventState changed to: OMX_StateIdle
ctrl-dc state IDLE
got eventState changed to: OMX_StateIdle
display state IDLE
got eventState changed to: OMX_StateExecuting
display control state execute
got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)
Press a key to proceed

出了错误 got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)

想了许久,查了很多,最后想到了要改变分辨率。

root@8168:~#sh change_resolution.sh 1080p60

修改分辨率成功后,reboot,再尝试:

root@8168:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i ../data/videos/dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0 -c h264
input file: ../data/videos/dm816x_1080p_demo.264
width: 1920
height: 1080
frame_rate: 60
gfx: fbdev disable
codec: h264
display_id: 0
Decoder-Display example
===============================
OMX_Init completed
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
opening file
decoder compoenent is created
PADX: 32 PADY: 24
level set is 12
scalar compoenent is created
set input port params (width = 1920, height = 1080)
set output port params (width = 1920, height = 1080)
set number of channels
set input resolution
set output resolution
enable scalar input port
got eventEnable/Disable Event
enable scalar output port
got eventEnable/Disable Event
found handle 0x127f58 for component OMX.TI.VPSSM3.VFDC
got display handle
found handle 0x12ba60 for component OMX.TI.VPSSM3.CTRL.DC
Buffer Size computed: 4147200
set input port params (width = 1920, height = 1080)
setting input and output memory type to default
enable input port
got eventEnable/Disable Event
connect call for decoder-scalar
connect call for scalar-display
decoder inport buffers allocated
decoder outport buffers allocated
got eventState changed to: OMX_StateIdle
state IDLE
Scalar input port use buffer done
scalar outport buffers allocated
got eventState changed to: OMX_StateIdle
scalar state IDLE
got eventState changed to: OMX_StateIdle
ctrl-dc state IDLE
got eventState changed to: OMX_StateIdle
display state IDLE
got eventState changed to: OMX_StateExecuting
display control state execute
got eventState changed to: OMX_StateExecuting
display state execute
got eventState changed to: OMX_StateExecuting
scalar state execute
got eventState changed to: OMX_StateExecuting
decoder state execute
file read thread created
decoder connect thread created
scalar connect thread created
display connect thread created
executing the appliaction now!!!
No data available for Read
got eventOMX_EventBufferFlag
got EOS event
got eventOMX_EventBufferFlag
got EOS event
got eventOMX_EventBufferFlag
got EOS event
tearing down the decode-display example
exiting thread
exiting thread
exiting thread
got eventState changed to: OMX_StateIdle
decoder state idle
got eventState changed to: OMX_StateIdle
Scalar state idle
got eventState changed to: OMX_StateIdle
display state idle
got eventState changed to: OMX_StateIdle
display control state idle
got eventState changed to: OMX_StateLoaded
decoder state loaded
got eventState changed to: OMX_StateLoaded
Scalar state loaded
got eventState changed to: OMX_StateLoaded
display state loaded
got eventState changed to: OMX_StateLoaded
ctrl-dc state loaded
decoder free handle
scalar free handle
display free handle
ctrl-dc free handle
IL Client deinitialized
example exit
root@8168:/usr/share/ti/ti-omx#

成功完成了整个264文件的解码显示功能,结束后退出。

DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]