cropW = pcdev->zoominfo.a.c.width;
cropH = pcdev->zoominfo.a.c.height;
- psY = psY + (srcW-cropW)/2;
- psUV = psUV + (srcW-cropW)/2;
+ psY = psY + pcdev->zoominfo.a.c.top*pcdev->zoominfo.vir_width+pcdev->zoominfo.a.c.left;
+ psUV = psUV + pcdev->zoominfo.a.c.top*pcdev->zoominfo.vir_width/2+pcdev->zoominfo.a.c.left;
vb_info = pcdev->vbinfo+vb->i;
dst_phy = vb_info->phy_addr;
dstW = pcdev->icd->user_width;
dstH = pcdev->icd->user_height;
- zoomindstxIntInv = ((unsigned long)cropW<<16)/dstW + 1;
- zoomindstyIntInv = ((unsigned long)cropH<<16)/dstH + 1;
-
+ zoomindstxIntInv = ((unsigned long)(cropW)<<16)/dstW + 1;
+ zoomindstyIntInv = ((unsigned long)(cropH)<<16)/dstH + 1;
//y
//for(y = 0; y<dstH - 1 ; y++ ) {
for(y = 0; y<dstH; y++ ) {
pcdev->host_width = usr_w;
pcdev->host_height = usr_h;
}
+
#else
//according to crop and scale capability to change , here just cropt to user needed
if (unlikely((mf.width <16) || (mf.width > 8190) || (mf.height < 16) || (mf.height > 8190))) {