Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -93,11 +93,6 @@ static const struct v4l2_fract webcam_intervals[VIVID_WEBCAM_IVALS] = {
	{  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,
		       unsigned *nbuffers, unsigned *nplanes,
		       unsigned sizes[], struct device *alloc_devs[])
@@ -578,7 +573,9 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv,
	mp->field = vivid_field_cap(dev, mp->field);
	if (vivid_is_webcam(dev)) {
		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;
		h = sz->height;
+7 −6
Original line number Diff line number Diff line
@@ -371,18 +371,19 @@ void v4l_bound_align_image(u32 *w, unsigned int wmin, unsigned int wmax,
}
EXPORT_SYMBOL_GPL(v4l_bound_align_image);

const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
		const struct v4l2_discrete_probe *probe,
const struct v4l2_frmsize_discrete *
v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
			  size_t num_sizes,
			  s32 width, s32 height)
{
	int i;
	u32 error, min_error = UINT_MAX;
	const struct v4l2_frmsize_discrete *size, *best = NULL;

	if (!probe)
		return best;
	if (!sizes)
		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);
		if (error < min_error) {
			min_error = error;
+4 −8
Original line number Diff line number Diff line
@@ -249,13 +249,9 @@ void v4l_bound_align_image(unsigned int *w, unsigned int wmin,
			   unsigned int hmax, unsigned int halign,
			   unsigned int salign);

struct v4l2_discrete_probe {
	const struct v4l2_frmsize_discrete	*sizes;
	int					num_sizes;
};

const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
		const struct v4l2_discrete_probe *probe,
const struct v4l2_frmsize_discrete *
v4l2_find_nearest_format(const struct v4l2_frmsize_discrete *sizes,
			  const size_t num_sizes,
			  s32 width, s32 height);

void v4l2_get_timestamp(struct timeval *tv);