[media] v4l: Unify selection flags
Unify flags on the selection interfaces on V4L2 and V4L2 subdev. Flags are very similar to targets in this case: there are more similarities than differences between the two interfaces. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
64b9ce83a4
commit
563df3d0bc
@@ -2064,7 +2064,7 @@ static int ccdc_set_selection(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
|
|||||||
* pad. If the KEEP_CONFIG flag is set, just return the current crop
|
* pad. If the KEEP_CONFIG flag is set, just return the current crop
|
||||||
* rectangle.
|
* rectangle.
|
||||||
*/
|
*/
|
||||||
if (sel->flags & V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG) {
|
if (sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG) {
|
||||||
sel->r = *__ccdc_get_crop(ccdc, fh, sel->which);
|
sel->r = *__ccdc_get_crop(ccdc, fh, sel->which);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -2000,7 +2000,7 @@ static int preview_set_selection(struct v4l2_subdev *sd,
|
|||||||
* pad. If the KEEP_CONFIG flag is set, just return the current crop
|
* pad. If the KEEP_CONFIG flag is set, just return the current crop
|
||||||
* rectangle.
|
* rectangle.
|
||||||
*/
|
*/
|
||||||
if (sel->flags & V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG) {
|
if (sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG) {
|
||||||
sel->r = *__preview_get_crop(prev, fh, sel->which);
|
sel->r = *__preview_get_crop(prev, fh, sel->which);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -38,9 +38,9 @@
|
|||||||
|
|
||||||
#include "smiapp.h"
|
#include "smiapp.h"
|
||||||
|
|
||||||
#define SMIAPP_ALIGN_DIM(dim, flags) \
|
#define SMIAPP_ALIGN_DIM(dim, flags) \
|
||||||
((flags) & V4L2_SUBDEV_SEL_FLAG_SIZE_GE \
|
((flags) & V4L2_SEL_FLAG_GE \
|
||||||
? ALIGN((dim), 2) \
|
? ALIGN((dim), 2) \
|
||||||
: (dim) & ~1)
|
: (dim) & ~1)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1747,14 +1747,14 @@ static int scaling_goodness(struct v4l2_subdev *subdev, int w, int ask_w,
|
|||||||
h &= ~1;
|
h &= ~1;
|
||||||
ask_h &= ~1;
|
ask_h &= ~1;
|
||||||
|
|
||||||
if (flags & V4L2_SUBDEV_SEL_FLAG_SIZE_GE) {
|
if (flags & V4L2_SEL_FLAG_GE) {
|
||||||
if (w < ask_w)
|
if (w < ask_w)
|
||||||
val -= SCALING_GOODNESS;
|
val -= SCALING_GOODNESS;
|
||||||
if (h < ask_h)
|
if (h < ask_h)
|
||||||
val -= SCALING_GOODNESS;
|
val -= SCALING_GOODNESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & V4L2_SUBDEV_SEL_FLAG_SIZE_LE) {
|
if (flags & V4L2_SEL_FLAG_LE) {
|
||||||
if (w > ask_w)
|
if (w > ask_w)
|
||||||
val -= SCALING_GOODNESS;
|
val -= SCALING_GOODNESS;
|
||||||
if (h > ask_h)
|
if (h > ask_h)
|
||||||
|
@@ -29,7 +29,11 @@
|
|||||||
#ifndef __V4L2_COMMON__
|
#ifndef __V4L2_COMMON__
|
||||||
#define __V4L2_COMMON__
|
#define __V4L2_COMMON__
|
||||||
|
|
||||||
/* Selection target definitions */
|
/*
|
||||||
|
*
|
||||||
|
* Selection interface definitions
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
/* Current cropping area */
|
/* Current cropping area */
|
||||||
#define V4L2_SEL_TGT_CROP 0x0000
|
#define V4L2_SEL_TGT_CROP 0x0000
|
||||||
@@ -46,7 +50,7 @@
|
|||||||
/* Current composing area plus all padding pixels */
|
/* Current composing area plus all padding pixels */
|
||||||
#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103
|
#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103
|
||||||
|
|
||||||
/* Backward compatibility definitions */
|
/* Backward compatibility target definitions --- to be removed. */
|
||||||
#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP
|
#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP
|
||||||
#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE
|
#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE
|
||||||
#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL \
|
#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL \
|
||||||
@@ -54,4 +58,14 @@
|
|||||||
#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL \
|
#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL \
|
||||||
V4L2_SEL_TGT_COMPOSE
|
V4L2_SEL_TGT_COMPOSE
|
||||||
|
|
||||||
#endif /* __V4L2_COMMON__ */
|
/* Selection flags */
|
||||||
|
#define V4L2_SEL_FLAG_GE (1 << 0)
|
||||||
|
#define V4L2_SEL_FLAG_LE (1 << 1)
|
||||||
|
#define V4L2_SEL_FLAG_KEEP_CONFIG (1 << 2)
|
||||||
|
|
||||||
|
/* Backward compatibility flag definitions --- to be removed. */
|
||||||
|
#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE V4L2_SEL_FLAG_GE
|
||||||
|
#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE
|
||||||
|
#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG
|
||||||
|
|
||||||
|
#endif /* __V4L2_COMMON__ */
|
||||||
|
@@ -124,10 +124,6 @@ struct v4l2_subdev_frame_interval_enum {
|
|||||||
__u32 reserved[9];
|
__u32 reserved[9];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE (1 << 0)
|
|
||||||
#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE (1 << 1)
|
|
||||||
#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG (1 << 2)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct v4l2_subdev_selection - selection info
|
* struct v4l2_subdev_selection - selection info
|
||||||
*
|
*
|
||||||
@@ -135,7 +131,7 @@ struct v4l2_subdev_frame_interval_enum {
|
|||||||
* @pad: pad number, as reported by the media API
|
* @pad: pad number, as reported by the media API
|
||||||
* @target: Selection target, used to choose one of possible rectangles,
|
* @target: Selection target, used to choose one of possible rectangles,
|
||||||
* defined in v4l2-common.h; V4L2_SEL_TGT_* .
|
* defined in v4l2-common.h; V4L2_SEL_TGT_* .
|
||||||
* @flags: constraint flags
|
* @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
|
||||||
* @r: coordinates of the selection window
|
* @r: coordinates of the selection window
|
||||||
* @reserved: for future use, set to zero for now
|
* @reserved: for future use, set to zero for now
|
||||||
*
|
*
|
||||||
|
@@ -761,16 +761,12 @@ struct v4l2_crop {
|
|||||||
struct v4l2_rect c;
|
struct v4l2_rect c;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Hints for adjustments of selection rectangle */
|
|
||||||
#define V4L2_SEL_FLAG_GE 0x00000001
|
|
||||||
#define V4L2_SEL_FLAG_LE 0x00000002
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct v4l2_selection - selection info
|
* struct v4l2_selection - selection info
|
||||||
* @type: buffer type (do not use *_MPLANE types)
|
* @type: buffer type (do not use *_MPLANE types)
|
||||||
* @target: Selection target, used to choose one of possible rectangles;
|
* @target: Selection target, used to choose one of possible rectangles;
|
||||||
* defined in v4l2-common.h; V4L2_SEL_TGT_* .
|
* defined in v4l2-common.h; V4L2_SEL_TGT_* .
|
||||||
* @flags: constraints flags
|
* @flags: constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
|
||||||
* @r: coordinates of selection window
|
* @r: coordinates of selection window
|
||||||
* @reserved: for future use, rounds structure size to 64 bytes, set to zero
|
* @reserved: for future use, rounds structure size to 64 bytes, set to zero
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user