各位大牛:
我目前在做dm368的实时解码,参考demo中的decode程序,码流由编码端编码后,通过网络发送给解码端,由解码端实时解码,然后送给hdmi输出。目前发现一个比较尴尬的问题。
图片的分辨率为1280*720,解码后输出的buff,其中dim的x、y分别为24和48,图像在整个buff中的坐标为(24,48),通过查看dmai对应的display接口,发现只有y被设置到内核,而x没有被设置到内核中。从而显示横向出现右偏移,即最左边的24列像素点是无效的(被拉长),最右边缺少24列像素点。而纵向由于设置正确,显示是没有问题的。
刚开始,我以为是我的程序有问题。因此我用的dvsdk原生的decode程序以及自带的264文件测试,发现也有同样的问题。这个问题不仔细查看,是很难看出的。因此我猜测,这个应该是一个共性bug。
我尝试新建显示buff,通过framecopy,将解码后偏移为(24,48)的buff拷贝到偏移为(0,0)的buff中,再送显,图像就正常了,但测试时发现,framecopy占用cpu资源,会导致码流接收丢帧,总出现解码错误,因此该方案暂没继续实施。
在这里请教各位大牛,有没有更好的办法,这个bug还是比较明显的,相信不止我一个人碰到。
非常感谢!