TI中文支持网
TI专业的中文技术问题搜集分享网站

【紧急求助】dm368解码后buff有偏移,导致横向显示右移,求解决方案

各位大牛:

    我目前在做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还是比较明显的,相信不止我一个人碰到。

    非常感谢!

kooking:

好像没这么复杂吧,有个startx之类的参数设置一下就可以了,我晚上回去看看代码

zhoutao:

顶下。我碰到同样的问题,求解。。。。。。。。

Chris Meng:

回复 kooking:

你好,

请问你是否有参考过h264dec user guide里面的Figure 3-3. Frame Buffer Pointer Implementation?你使用的是IVIDDEC_OutArgs->displayBufs作为显示输出的buffer首地址么?

zhoutao:

回复 Chris Meng:

你好,

我用DM368,用dvsdk-demos_4_02_00_01的例子decode,做的测试,出现的问题和一楼的问题一样,就用例子里的的程序(没做任何修改)

root@dm368-evm:/usr/share/ti/dvsdk-demos# ./decode -y 3 -v ../data/videos/davincieffect.264

出现的问题和一楼的问题一样,左边多了一条24点宽的白边(把最左边的点拉长24点)

仔细查了下例子里,用的是IVIDDEC_OutArgs->displayBufs作为显示输出的buffer首地址.

 

Chris Meng:

回复 zhoutao:

你好,

davincieffect.264的原始大小是720×480还是1280×720?-y 3应该是720p输出,如果原始图像是D1的,建议用CVBS输出看看原图大小的时候是否有偏移。

zhoutao:

回复 Chris Meng:

davincieffect.264的原始大小是1280×720

xue bing:

回复 Chris Meng:

不好意思,最近一直没时间上论坛.

我用的是DMAI的标准接口.

xue bing:

回复 Chris Meng:

不好意思,最近一直没时间上论坛.

我试过480P 576P 720P格式的解码输出,所有的buff全部都是偏移(24,48).

xue bing:

回复 zhoutao:

各位,此问题已经完美解决,该问题分析起来比较复杂,但修改起来很容易,在此简单提示一下:

1 因为ti的架构要求大多数buff都要32字节对齐,有些还要64字节对齐.因此很难从上层直接修改,我的做法是直接在venc修改,将venc set timeing接口的HSTART加上24,当然,如果想提高兼容型,可以申请一个字符设备,将这个偏移通过ioctl传递下来.

这一条是解决左边24个点拉伸的问题

2 在应用层修改display设备的width,将width修改为linelength&(~0x3F),即比例linelength小,但还要64字节对齐(720P的话,这个值是1344).同时修改dmai和对应的驱动,使这个值能设置下去(把范围放开就行了,widthmax放到2000就行了)

这一条是解决右边被裁掉的24个点

 

不要试图从应用->osd->venc一步一步下来,因为根本不可行.

ps:

TI的测试,把关不严啊,这么严重的问题,居然直接放出来了.相信坑了不少兄弟,各位如果用到了dvsdk包作解码显示,建议赶紧看看自己的显示,会不会左边被拉伸,右边被裁减了.

赞(0)
未经允许不得转载:TI中文支持网 » 【紧急求助】dm368解码后buff有偏移,导致横向显示右移,求解决方案
分享到: 更多 (0)