dect
/
linux-2.6
Archived
13
0
Fork 0

[media] pvrusb2: width and height maximum values

pvrusb2: The origin of the capability bounds rectangle may differ from
(left=0,top=0) so the calculation should use absolute coordinates,
here below, or use relative coordinates like
cropl_val-cap->bounds.left and cropt_val-cap->bounds.top.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Servaas Vandenberghe 2011-02-13 17:51:09 -03:00 committed by Mauro Carvalho Chehab
parent 35fa5d4c48
commit 6188a0f151
1 changed files with 16 additions and 12 deletions

View File

@ -499,31 +499,35 @@ static int ctrl_cropt_max_get(struct pvr2_ctrl *cptr, int *top)
return 0; return 0;
} }
static int ctrl_cropw_max_get(struct pvr2_ctrl *cptr, int *val) static int ctrl_cropw_max_get(struct pvr2_ctrl *cptr, int *width)
{ {
struct v4l2_cropcap *cap = &cptr->hdw->cropcap_info; struct v4l2_cropcap *cap = &cptr->hdw->cropcap_info;
int stat = pvr2_hdw_check_cropcap(cptr->hdw); int stat, bleftend, cleft;
stat = pvr2_hdw_check_cropcap(cptr->hdw);
if (stat != 0) { if (stat != 0) {
return stat; return stat;
} }
*val = 0; bleftend = cap->bounds.left+cap->bounds.width;
if (cap->bounds.width > cptr->hdw->cropl_val) { cleft = cptr->hdw->cropl_val;
*val = cap->bounds.width - cptr->hdw->cropl_val;
} *width = cleft < bleftend ? bleftend-cleft : 0;
return 0; return 0;
} }
static int ctrl_croph_max_get(struct pvr2_ctrl *cptr, int *val) static int ctrl_croph_max_get(struct pvr2_ctrl *cptr, int *height)
{ {
struct v4l2_cropcap *cap = &cptr->hdw->cropcap_info; struct v4l2_cropcap *cap = &cptr->hdw->cropcap_info;
int stat = pvr2_hdw_check_cropcap(cptr->hdw); int stat, btopend, ctop;
stat = pvr2_hdw_check_cropcap(cptr->hdw);
if (stat != 0) { if (stat != 0) {
return stat; return stat;
} }
*val = 0; btopend = cap->bounds.top+cap->bounds.height;
if (cap->bounds.height > cptr->hdw->cropt_val) { ctop = cptr->hdw->cropt_val;
*val = cap->bounds.height - cptr->hdw->cropt_val;
} *height = ctop < btopend ? btopend-ctop : 0;
return 0; return 0;
} }