|
我使用官方test里的mpi_dec_test解码了一张640x480的jpg图片,没对代码做任何改动,生成的yuv文件可以正常用ffplay播放出来,我看yuv文件的大小为614400(640x480的2倍),应该是用的yuv422格式解码的,但是我没看到代码里哪里对输出格式设置为了yuv422,打印出来的是65551,对应MPP_FMT_BUTT,是未指定输出格式时默认为yuv422吗?
还有,我根据test自己改了一版代码,在/* poll and wait here */
ret = mApi->poll(mCtx, MPP_PORT_OUTPUT, MPP_POLL_BLOCK);
if (ret)
{
// MPP_ERR("mpp output poll failed\n");dump_mpp_frame_to_file
cout << "mpp output poll failed " << endl;
return ret;
}
这个函数运行时,有区别于官方test的报错打印,但是没退出,报错如下:
mpp[2208]: vcodec_ service: vcodec_ service_ reg_ wr reg size mismatch wr 636 rd 736
mpp[2208] : vcodec_ service: vcodec_ service_ cmd_ send ioctl VPU_ I0C_ SET_ REG failed ret -1 errno 14 Bad address
mpp[2208]: HAL_ JPEG_ VDPU2: hal_ jpegd_ vdpu2_ start send cmd failed 14
mpp[2208]: vcodec_ service: vcodec_ service_ cmd_ poll ioctl VPU_ I0C_ GET_ REG failed ret -1 errno 110 Connection timed out
mpp[2208]: HAL_ JPEG_ VDPU2: hal_ jpegd_ vdpu2_ wait poll cmd failed 110
第一行的打印,官方test也有,但是没有后面几行报错,我解码出来的图片大小没问题,播放出来就是花花绿绿的看不清,有时是全绿
我想请教懂的大佬第一行打印是什么意思,后面的报错可能是因为什么产生的?
(第一次接触硬解码,甚至是解码的知识,新人小白求助)
|
|