mirror of https://gitee.com/openkylin/linux.git
[media] v4l: vsp1: Make vsp1_entity_get_pad_compose() more generic
Turn the helper into a function that can retrieve crop and compose selection rectangles. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
7cf0f123c7
commit
ccd3d95a93
|
@ -87,12 +87,30 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
|
|||
return v4l2_subdev_get_try_format(&entity->subdev, cfg, pad);
|
||||
}
|
||||
|
||||
/**
|
||||
* vsp1_entity_get_pad_selection - Get a pad selection from storage for entity
|
||||
* @entity: the entity
|
||||
* @cfg: the configuration storage
|
||||
* @pad: the pad number
|
||||
* @target: the selection target
|
||||
*
|
||||
* Return the selection rectangle stored in the given configuration for an
|
||||
* entity's pad. The configuration can be an ACTIVE or TRY configuration. The
|
||||
* selection target can be COMPOSE or CROP.
|
||||
*/
|
||||
struct v4l2_rect *
|
||||
vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
unsigned int pad)
|
||||
vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
unsigned int pad, unsigned int target)
|
||||
{
|
||||
return v4l2_subdev_get_try_compose(&entity->subdev, cfg, pad);
|
||||
switch (target) {
|
||||
case V4L2_SEL_TGT_COMPOSE:
|
||||
return v4l2_subdev_get_try_compose(&entity->subdev, cfg, pad);
|
||||
case V4L2_SEL_TGT_CROP:
|
||||
return v4l2_subdev_get_try_crop(&entity->subdev, cfg, pad);
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -122,9 +122,9 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
|
|||
struct v4l2_subdev_pad_config *cfg,
|
||||
unsigned int pad);
|
||||
struct v4l2_rect *
|
||||
vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
unsigned int pad);
|
||||
vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
unsigned int pad, unsigned int target);
|
||||
int vsp1_entity_init_cfg(struct v4l2_subdev *subdev,
|
||||
struct v4l2_subdev_pad_config *cfg);
|
||||
|
||||
|
|
|
@ -130,9 +130,10 @@ static void rpf_configure(struct vsp1_entity *entity,
|
|||
if (pipe->bru) {
|
||||
const struct v4l2_rect *compose;
|
||||
|
||||
compose = vsp1_entity_get_pad_compose(pipe->bru,
|
||||
pipe->bru->config,
|
||||
rpf->bru_input);
|
||||
compose = vsp1_entity_get_pad_selection(pipe->bru,
|
||||
pipe->bru->config,
|
||||
rpf->bru_input,
|
||||
V4L2_SEL_TGT_COMPOSE);
|
||||
left = compose->left;
|
||||
top = compose->top;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue