ipu缩小程序

21 篇文章 0 订阅

if(ceshi_flag==0)
{
memset(&task, 0, sizeof(task));
task.output.width   = 640;
task.output.height  = 480;
task.output.format  = v4l2_fourcc('N', 'V', '1', '2');
fd_ipu = open("/dev/mxc_ipu", O_RDWR, 0);
if (fd_ipu < 0) {
printf("open ipu dev fail\n");
return  -1;
}
osize = task.output.paddr =
task.output.width * task.output.height
* fmt_to_bpp(task.output.format)/8;


ret = ioctl(fd_ipu, IPU_ALLOC, &task.output.paddr);
if (ret < 0) {
printf("ioctl IPU_ALLOC fail\n");
return  -1;
}
outbuf = mmap(0, osize, PROT_READ | PROT_WRITE,
MAP_SHARED, fd_ipu, task.output.paddr);
if (!outbuf) {
printf("mmap fail\n");
return  -1;
}
task.input.width    = 1920;
task.input.height   = 1080;
task.input.format   =  v4l2_fourcc('N', 'V', '1', '2');
isize = task.input.paddr =
task.input.width * task.input.height
* fmt_to_bpp(task.input.format)/8;
ret = ioctl(fd_ipu, IPU_ALLOC, &task.input.paddr);
if (ret < 0) {
printf("ioctl IPU_ALLOC fail: (errno = %d)\n", errno);
return  -1;
}
inbuf = mmap(0, isize, PROT_READ | PROT_WRITE,
MAP_SHARED, fd_ipu, task.input.paddr);
if (!inbuf) {
printf("mmap fail\n");
return  -1;
}
memcpy(inbuf,pic_track_5640,sizeof(pic_track_5640));
ret = ioctl(fd_ipu, IPU_QUEUE_TASK, &task);
if (ret < 0) {
printf("ioct IPU_QUEUE_TASK fail\n");
}
ceshi_flag=1;
process_image_5640(outbuf,osize);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值