请教:avserver在运行到VINDENC1_process时返回-1,我打印outArgs.extendedError,得到0x8007,请问此错误代码是什么意义?应该看那些资料解决此问题?
谢谢!
su shell:
我看了Codec Engine Application Developer User's Guide没有看到任何关于这些API的error信息啊,请指教,或给予链接,谢谢!
su shell:
回复 Tuff Li:
多谢,确实找到了xdm.h中关于errorbit的定义,但是这个定义太笼统了,不能从此err分析出出现此状况的原因。Anyhow,tks very much!
su shell:
回复 Tuff Li:
输入信号是YUV420 ,分辨率是736*576,我用YUVtool看输入的流生成的文件是正常的。且我用demo: ./video_encode_io1_dm368.x470MV -c h264enc -i VD_0001.YUV -o test.264 -r 736×576 -n 58
是可生成264文件的。也就是说源是没有问题的。差别在于我的代码是使用的mcvip和capture的buf而没有用OSA_cmemAlloc分配新的buffer从文件读取而已。
概括来说我capture到视频数据后用resizer把422的数据转换成420的然后交给codecengine去encoder,我觉得这样可以实现的,现在只能怀疑这些buf是不是在codecengine做虚拟转物理的时候失败了导致DSP拿不到数据。。。
下面是proces在执行时打印的一些信息:
@15,667,107us: [+0 T:0x4180c320] ti.sdo.ce.video1.VIDENC1 – VIDENC1_process> Enter (handle=0x2e6150, inBufs=0x4180ba0c, outBufs=0x4180bb70, inArgs=0x4180bb64, outArgs=0x4180badc)
@15,667,385us: [+5 T:0x4180c320] CV – VISA_entvpfe_vdint1_isr,894
er(visa=0x2e6150): algHandle = 0x2e6188
@15,667,526us: [+0 T:0x4180c320] ti.sdo.ce.alg.Algorithm – Algorithm_activate> Enter(alg=0x2e6188)
@15,667,779us: [+0 T:0x4180c320] ti.sdo.ce.alg.Algorithm – Algorithm_activate> Exit
@15,667,989us: [+5 T:0x4180c320] CV – VISA_exit(visa=0x2e6150): algHandle = 0x2e6188
@15,668,153us: [+0 T:0x4180c320] ti.sdo.ce.alg.Algorithm – Algorithm_deactivate> Enter(alg=0x2e6188)
@15,668,362us: [+0vpfe_vdint1_isr,894
T:0x4180c320] ti.sdo.ce.alg.Algorithm – Algorithm_deactivate> Exit
@15,668,495us: [+0 T:0x4180c320] ti.sdo.ce.video1.VIDENC1 – VIDENC1_process> Exit (handle=0x2e6150, retVal=0xffffffff)
请帮忙分析,谢谢!!!
Tuff Li:
回复 su shell:
"是可生成264文件的。也就是说源是没有问题的。差别在于我的代码是使用的mcvip和capture的buf而没有用OSA_cmemAlloc分配新的buffer从文件读取而已", 这个原因是可能的,codec要求的输入buffer是在cmem里的,
你可以做实验,在cmem里申请一个buffer,把capture到的数据copy到cmem buffer里,然后看看是否codec可以被执行
su shell:
回复 Tuff Li:
确实是因为我给codec的数据和create时配置的不一致造成的,万谢!
因为配置时没有考虑对齐的问题,所以导致我实际采集的数据和配置的有误差。
至于在cmem重新申请内存我试着总是申请失败,可能跟我申请的位置有关吧。
Tuff Li:
回复 su shell:
解决了就好,一定要仔细呀