![Freescale Semiconductor i.MX 6DualLite Reference Manual Download Page 68](http://html1.mh-extra.com/html/freescale-semiconductor/i-mx-6duallite/i-mx-6duallite_reference-manual_2330523068.webp)
printf("\theight: %d\n", t->output.height);
printf("\tcrop.w = %d\n", t->output.crop.w);
printf("\tcrop.h = %d\n", t->output.crop.h);
printf("\tcrop.pos.x = %d\n", t->output.crop.pos.x);
printf("\tcrop.pos.y = %d\n", t->output.crop.pos.y);
if (t->overlay_en) {
printf("overlay:\n");
printf("\twidth: %d\n", t->overlay.width);
printf("\theight: %d\n", t->overlay.height);
printf("\tcrop.w = %d\n", t->overlay.crop.w);
printf("\tcrop.h = %d\n", t->overlay.crop.h);
printf("\tcrop.pos.x = %d\n", t->overlay.crop.pos.x);
printf("\tcrop.pos.y = %d\n", t->overlay.crop.pos.y);
}
}
int main(int argc, char *argv[])
{
int fd, fd_fb, isize, ovsize, alpsize, cnt = 50;
int blank, ret;
FILE * file_in = NULL;
struct ipu_task task;
struct fb_var_screeninfo fb_var;
struct fb_fix_screeninfo fb_fix;
void *inbuf, *ovbuf, *alpbuf, *vdibuf;
fd = open("/dev/mxc_ipu", O_RDWR, 0);
fd_fb = open("/dev/fb1", O_RDWR, 0);
file_in = fopen(argv[argc-1], "rb");
memset(&task, 0, sizeof(task));
/* input setting */
task.input.width = 320;
task.input.height = 240;
task.input.crop.pos.x = 0;
task.input.crop.pos.y = 0;
task.input.crop.w = 0;
task.input.crop.h = 0;
task.input.format = IPU_PIX_FMT_YUV420P;
isize = task.input.paddr =
task.input.width * task.input.height
* fmt_to_bpp(task.input.format)/8;
ioctl(fd, IPU_ALLOC, &task.input.paddr);
inbuf = mmap(0, isize, PROT_READ | PROT_WRITE,
MAP_SHARED, fd, task.input.paddr);
/*overlay setting */
task.overlay_en = 1;
task.overlay.width = 1024;
task.overlay.height = 768;
task.overlay.crop.pos.x = 0;
task.overlay.crop.pos.y = 0;
task.overlay.crop.w = 0;
task.overlay.crop.h = 0;
task.overlay.format = IPU_PIX_FMT_RGB24;
#ifdef GLOBAL_ALP
task.overlay.alpha.mode = IPU_ALPHA_MODE_GLOBAL;
task.overlay.alpha.gvalue = 255;
task.overlay.colorkey.enable = 1;
task.overlay.colorkey.value = 0x555555;
#else
task.overlay.alpha.mode = IPU_ALPHA_MODE_LOCAL;
alpsize = task.overlay.alpha.loc_alp_paddr =
task.overlay.width * task.overlay.height;
ioctl(fd, IPU_ALLOC, &task.overlay.alpha.loc_alp_paddr);
alpbuf = mmap(0, alpsize, PROT_READ | PROT_WRITE,
Unit Test
i.MX 6Solo/6DualLite Linux Reference Manual, Rev. L3.0.35_4.1.0, 09/2013
68
Freescale Semiconductor, Inc.