TI论坛
直播中

h1654155275.6347

7年用户 317经验值
私信 关注
[问答]

dm368在encode里面做reisz

我想在encode里面做reisze ,把1280x720resize成720x576
但是我把dmai接口函数Resizer_continuous_config里面
rsz_cont_config.output2.enable = 0;改为
rsz_cont_config.output2.enable = 1;
然后就出错,最后跟踪是在dmai 里面capture_create里面的
_Dmai_v4l2DriverAlloc函数v4l ioctl 命令VIDIOC_QBUF 报错
请问是怎么回事?

回帖(9)

h1654155275.6347

2020-4-15 07:44:29
怎么就没有一个人知道吗????????????????????????????????????????????????????????????
举报

周颂焱

2020-4-15 08:03:32
你仔细看一下这个
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/7777.aspx
修改DMAI,可以得到两路resize后的视频,可以将一路用来显示,一路用来编码。
需要注意的是capture_get后的buffer的大小为两个resize视频数据大小。
举报

h1654155275.6347

2020-4-15 08:15:03
引用: sosolala 发表于 2020-4-15 08:03
你仔细看一下这个
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/7777.aspx
修改DMAI,可以得到两路resize后的视频,可以将一路用来显示,一路用来编码。

我按照e2e里面的做了,resize出来两路流,A和B,A用作编码,B用作D1显示
A和B的分辨率设为1280x720和704x576
dmai里面resizeB的大小也是704x576
cap的出来的yuv是YUV420PSEMI格式,但是B数据只能正确显示第一帧和最后一帧,其他帧都不能正确显示

 
这是正确显示的第一帧和最后一帧
 

 
 
这是显示的不正确的其它帧
 
请问这是怎么回事呢????????????????????????????????????????????????????????????
举报

周颂焱

2020-4-15 08:28:09
/* Preview part */
if (Display_get(hDisplay, &hDisBuf) < 0) [
ERR("Failed to get display buffern");
cleanup(THREAD_FAILURE);
]
这个之后要将hCapBuf偏移BIG SIZE后BIG SMALL的内容拷贝到hDisBuf,然后Display_put,我估计你是这个地方的原因~所以buffer没有循环起来
举报

更多回帖

发帖
×
20
完善资料,
赚取积分