Commit 0545629e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: v4l2-common: get rid of struct v4l2_discrete_probe

This struct is there just two store two arguments of
v4l2_find_nearest_format(). The other two arguments are passed
as parameter.

IMHO, there isn't much sense on doing that, and that will just
add one more struct to document ;)

So, let's get rid of the struct, passing the parameters directly.
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 01154ef5
...@@ -93,11 +93,6 @@ static const struct v4l2_fract webcam_intervals[VIVID_WEBCAM_IVALS] = { ...@@ -93,11 +93,6 @@ static const struct v4l2_fract webcam_intervals[VIVID_WEBCAM_IVALS] = {
{ 1, 60 }, { 1, 60 },
}; };
static const struct v4l2_discrete_probe webcam_probe = {
webcam_sizes,
VIVID_WEBCAM_SIZES
};
static int vid_cap_queue_setup(struct vb2_queue *vq, static int vid_cap_queue_setup(struct vb2_queue *vq,
unsigned *nbuffers, unsigned *nplanes, unsigned *nbuffers, unsigned *nplanes,
unsigned sizes[], struct device *alloc_devs[]) unsigned sizes[], struct device *alloc_devs[])
...@@ -578,7 +573,9 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv, ...@@ -578,7 +573,9 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv,
mp->field = vivid_field_cap(dev, mp->field); mp->field = vivid_field_cap(dev, mp->field);
if (vivid_is_webcam(dev)) { if (vivid_is_webcam(dev)) {
const struct v4l2_frmsize_discrete *sz = const struct v4l2_frmsize_discrete *sz =
v4l2_find_nearest_format(&webcam_probe, mp->width, mp->height); v4l2_find_nearest_format(webcam_sizes,
VIVID_WEBCAM_SIZES,
mp->width, mp->height);
w = sz->width; w = sz->width;
h = sz->height; h = sz->height;
......
...@@ -371,18 +371,19 @@ void v4l_bound_align_image(u32 *w, unsigned int wmin, unsigned int wmax, ...@@ -371,18 +371,19 @@ void v4l_bound_align_image(u32 *w, unsigned int wmin, unsigned int wmax,
} }
EXPORT_SYMBOL_GPL(v4l_bound_align_image); EXPORT_SYMBOL_GPL(v4l_bound_align_image);
const struct v4l2_frmsize_discrete *v4l2_find_nearest_format( const struct v4l2_frmsize_discrete *
const struct v4l2_discrete_probe *probe, v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
s32 width, s32 height) size_t num_sizes,
s32 width, s32 height)
{ {
int i; int i;
u32 error, min_error = UINT_MAX; u32 error, min_error = UINT_MAX;
const struct v4l2_frmsize_discrete *size, *best = NULL; const struct v4l2_frmsize_discrete *size, *best = NULL;
if (!probe) if (!sizes)
return best; return NULL;
for (i = 0, size = probe->sizes; i < probe->num_sizes; i++, size++) { for (i = 0, size = sizes; i < num_sizes; i++, size++) {
error = abs(size->width - width) + abs(size->height - height); error = abs(size->width - width) + abs(size->height - height);
if (error < min_error) { if (error < min_error) {
min_error = error; min_error = error;
......
...@@ -249,14 +249,10 @@ void v4l_bound_align_image(unsigned int *w, unsigned int wmin, ...@@ -249,14 +249,10 @@ void v4l_bound_align_image(unsigned int *w, unsigned int wmin,
unsigned int hmax, unsigned int halign, unsigned int hmax, unsigned int halign,
unsigned int salign); unsigned int salign);
struct v4l2_discrete_probe { const struct v4l2_frmsize_discrete *
const struct v4l2_frmsize_discrete *sizes; v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
int num_sizes; const size_t num_sizes,
}; s32 width, s32 height);
const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
const struct v4l2_discrete_probe *probe,
s32 width, s32 height);
void v4l2_get_timestamp(struct timeval *tv); void v4l2_get_timestamp(struct timeval *tv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment