V4L/DVB (11901): v4l2: Create helper function for bounding and aligning images

Most hardware has limits on minimum and maximum image dimensions and also
requirements about alignment.  For example, image width must be even or a
multiple of four.  Some hardware has requirements that the total image size
(width * height) be a multiple of some power of two.

v4l_bound_align_image() will enforce min and max width and height, power of
two alignment on width and height, and power of two alignment on total
image size.

It uses an efficient algorithm that will try to find the "closest" image
size that meets the requirements.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Trent Piepho
2009-05-30 21:45:46 -03:00
committed by Mauro Carvalho Chehab
parent 2c0b19ac3b
commit b0d3159be9
2 changed files with 84 additions and 1 deletions

View File

@@ -209,4 +209,14 @@ struct v4l2_routing {
u32 output;
};
/* ------------------------------------------------------------------------- */
/* Miscellaneous helper functions */
void v4l_bound_align_image(unsigned int *w, unsigned int wmin,
unsigned int wmax, unsigned int walign,
unsigned int *h, unsigned int hmin,
unsigned int hmax, unsigned int halign,
unsigned int salign);
#endif /* V4L2_COMMON_H_ */