Hardware Decoder Error when frame height is larger than 1080


#1

Hi All,

According to the specs we thought Rock960 supported HW accelerated decoding up to 4K.

However , we are seeing a decoding error with h264 content when frame height is larger than 1080 with repeated logs reporting “this frame is Error frame!”.

We cannot reproduce the problem when we force the input stream to be 1080p max.

A portion of the logs is added below

Any pointers are appreciated.

Thanks
BG

10-19 12:14:26.033 199 206 D GRALLOC-ROCKCHIP: enter, w : 1280, h : 1440, format : 0x15, usage : 0x2900.
10-19 12:14:26.040 2238 2308 D GRALLOC-ROCKCHIP: enter, w : 1280, h : 1440, format : 0x15, usage : 0x2900.
10-19 12:14:26.040 246 1788 D GRALLOC-ROCKCHIP: enter, w : 1280, h : 1440, format : 0x15, usage : 0x2900.
10-19 12:14:26.041 246 2309 E ROCKCHIP_VIDEO_DEC: Rkvpu_Dec_ComponentInit(1110): omx decoder info : author: vamrs
10-19 12:14:26.041 246 2309 E ROCKCHIP_VIDEO_DEC: time: Tue, 22 May 2018 09:41:32 +0800 git commit a582aaba031253101c630a603b8a85b81eea422e
10-19 12:14:26.041 246 2309 I mpi : mpp version: 92a63e1 author: Rimon Xu [version]: 修改更新mpp version的路径
10-19 12:14:26.055 246 2312 D ROCKCHIP_VIDEO_DEC: Rkvpu_SendInputData(363): Rkvpu_SendInputData malloc
10-19 12:14:26.055 246 2312 I hal_h264d_api: hal_h264d_init mpp_buffer_group_get_internal used ion In
10-19 12:14:26.057 246 2312 I hal_h264d_rkv_reg: control info: fmt 0, w 1080, h 1440
10-19 12:14:26.057 246 2312 I mpp_dec : setting default w 1080 h 1440 h_str 1280 v_str 1440
10-19 12:14:26.057 246 2312 I mpp_buf_slot: set frame info: w 1080 h 1440 hor 1280 ver 1440
10-19 12:14:26.094 246 1788 E OMXNodeInstance: getConfig(f60028:rk._decoder.avc, ConfigCommonOutputCrop(0x700000f)) ERROR: UnsupportedIndex(0x8000101a)
10-19 12:14:26.096 2238 2313 I Reflector: Decoder changed format to 1080x1440
10-19 12:14:26.113 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21367882376
10-19 12:14:26.122 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21367915715
10-19 12:14:26.126 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21367949042
10-19 12:14:26.130 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21367982450
10-19 12:14:26.133 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368015788
10-19 12:14:26.137 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368049085
10-19 12:14:26.141 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368082472
10-19 12:14:26.145 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368115739
10-19 12:14:26.148 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368149132
10-19 12:14:26.152 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368182363
10-19 12:14:26.172 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368215758
10-19 12:14:26.185 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368249115
10-19 12:14:26.188 246 2311 E ROCKCHIP_VIDEO_DEC: Rkvpu_Post_OutputFrame(637): this frame is Error frame!,pOutput.timeUs = 21368315785


#2

Not sure what’s going on here, but this seems coming from the user-space OMX implementation.
Looking at the code on the web, we can see these lines:

This makes me feel that you need to have a width AND height larger than 1920x1080, which is not the case in your use case (1280x1440).

Could you please try with ‘standard’ 4k format (4096x2304) and see if it works.