On Sat, Oct 20, 2018 at 7:26 AM Akinobu Mita <akinobu.mita@xxxxxxxxx> wrote: > > Add macro to compare two v4l2_fract values in v4l2 common internal API. > The same macro FRACT_CMP() is used by vivid and bcm2835-camera. This just > renames it to V4L2_FRACT_COMPARE in order to avoid namespace collision. > > Cc: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> > Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > Cc: Hans Verkuil <hansverk@xxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> > --- > * v4 > - No changes from v3 > > include/media/v4l2-common.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h > index cdc87ec..eafb8a3 100644 > --- a/include/media/v4l2-common.h > +++ b/include/media/v4l2-common.h > @@ -384,4 +384,9 @@ int v4l2_g_parm_cap(struct video_device *vdev, > int v4l2_s_parm_cap(struct video_device *vdev, > struct v4l2_subdev *sd, struct v4l2_streamparm *a); > > +/* Compare two v4l2_fract structs */ > +#define V4L2_FRACT_COMPARE(a, OP, b) \ > + ((u64)(a).numerator * (b).denominator OP \ > + (u64)(b).numerator * (a).denominator) > + Noticed a few issues today when testing another thermal camera that can do 0.5 fps to 64 fps with this macro.. 1) This can have collision easily when numerator and denominators multiplied have the same product, example is 0.5hz and 2hz have the same output as 2 2) Also this doesn't reduce fractions so I am seeing 4000000 compared with 4 for instance with a 4hz frame interval. - Matt > #endif /* V4L2_COMMON_H_ */ > -- > 2.7.4 >