mirror of https://gitee.com/openkylin/linux.git
[media] v4l2-ioctl: simplify code
Instead of a big if at the beginning, just check if g_selection == NULL and call the cropcap op immediately and return the result. No functional changes in this patch. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
9765a32cd8
commit
54ace1cfd4
|
@ -2160,34 +2160,41 @@ static int v4l_cropcap(const struct v4l2_ioctl_ops *ops,
|
||||||
struct file *file, void *fh, void *arg)
|
struct file *file, void *fh, void *arg)
|
||||||
{
|
{
|
||||||
struct v4l2_cropcap *p = arg;
|
struct v4l2_cropcap *p = arg;
|
||||||
|
struct v4l2_selection s = { .type = p->type };
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (ops->vidioc_g_selection) {
|
if (ops->vidioc_g_selection == NULL) {
|
||||||
struct v4l2_selection s = { .type = p->type };
|
/*
|
||||||
int ret;
|
* The determine_valid_ioctls() call already should ensure
|
||||||
|
* that ops->vidioc_cropcap != NULL, but just in case...
|
||||||
/* obtaining bounds */
|
*/
|
||||||
if (V4L2_TYPE_IS_OUTPUT(p->type))
|
if (ops->vidioc_cropcap)
|
||||||
s.target = V4L2_SEL_TGT_COMPOSE_BOUNDS;
|
return ops->vidioc_cropcap(file, fh, p);
|
||||||
else
|
return -ENOTTY;
|
||||||
s.target = V4L2_SEL_TGT_CROP_BOUNDS;
|
|
||||||
|
|
||||||
ret = ops->vidioc_g_selection(file, fh, &s);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
p->bounds = s.r;
|
|
||||||
|
|
||||||
/* obtaining defrect */
|
|
||||||
if (V4L2_TYPE_IS_OUTPUT(p->type))
|
|
||||||
s.target = V4L2_SEL_TGT_COMPOSE_DEFAULT;
|
|
||||||
else
|
|
||||||
s.target = V4L2_SEL_TGT_CROP_DEFAULT;
|
|
||||||
|
|
||||||
ret = ops->vidioc_g_selection(file, fh, &s);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
p->defrect = s.r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* obtaining bounds */
|
||||||
|
if (V4L2_TYPE_IS_OUTPUT(p->type))
|
||||||
|
s.target = V4L2_SEL_TGT_COMPOSE_BOUNDS;
|
||||||
|
else
|
||||||
|
s.target = V4L2_SEL_TGT_CROP_BOUNDS;
|
||||||
|
|
||||||
|
ret = ops->vidioc_g_selection(file, fh, &s);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
p->bounds = s.r;
|
||||||
|
|
||||||
|
/* obtaining defrect */
|
||||||
|
if (V4L2_TYPE_IS_OUTPUT(p->type))
|
||||||
|
s.target = V4L2_SEL_TGT_COMPOSE_DEFAULT;
|
||||||
|
else
|
||||||
|
s.target = V4L2_SEL_TGT_CROP_DEFAULT;
|
||||||
|
|
||||||
|
ret = ops->vidioc_g_selection(file, fh, &s);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
p->defrect = s.r;
|
||||||
|
|
||||||
/* setting trivial pixelaspect */
|
/* setting trivial pixelaspect */
|
||||||
p->pixelaspect.numerator = 1;
|
p->pixelaspect.numerator = 1;
|
||||||
p->pixelaspect.denominator = 1;
|
p->pixelaspect.denominator = 1;
|
||||||
|
|
Loading…
Reference in New Issue