|
@@ -26,6 +26,7 @@
|
|
|
#include <media/v4l2-common.h>
|
|
|
#include <media/v4l2-event.h>
|
|
|
#include <media/v4l2-dv-timings.h>
|
|
|
+#include <media/v4l2-rect.h>
|
|
|
|
|
|
#include "vivid-core.h"
|
|
|
#include "vivid-vid-common.h"
|
|
@@ -590,16 +591,16 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv,
|
|
|
} else {
|
|
|
struct v4l2_rect r = { 0, 0, mp->width, mp->height * factor };
|
|
|
|
|
|
- rect_set_min_size(&r, &vivid_min_rect);
|
|
|
- rect_set_max_size(&r, &vivid_max_rect);
|
|
|
+ v4l2_rect_set_min_size(&r, &vivid_min_rect);
|
|
|
+ v4l2_rect_set_max_size(&r, &vivid_max_rect);
|
|
|
if (dev->has_scaler_cap && !dev->has_compose_cap) {
|
|
|
struct v4l2_rect max_r = { 0, 0, MAX_ZOOM * w, MAX_ZOOM * h };
|
|
|
|
|
|
- rect_set_max_size(&r, &max_r);
|
|
|
+ v4l2_rect_set_max_size(&r, &max_r);
|
|
|
} else if (!dev->has_scaler_cap && dev->has_crop_cap && !dev->has_compose_cap) {
|
|
|
- rect_set_max_size(&r, &dev->src_rect);
|
|
|
+ v4l2_rect_set_max_size(&r, &dev->src_rect);
|
|
|
} else if (!dev->has_scaler_cap && !dev->has_crop_cap) {
|
|
|
- rect_set_min_size(&r, &dev->src_rect);
|
|
|
+ v4l2_rect_set_min_size(&r, &dev->src_rect);
|
|
|
}
|
|
|
mp->width = r.width;
|
|
|
mp->height = r.height / factor;
|
|
@@ -668,7 +669,7 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv,
|
|
|
|
|
|
if (dev->has_scaler_cap) {
|
|
|
if (dev->has_compose_cap)
|
|
|
- rect_map_inside(compose, &r);
|
|
|
+ v4l2_rect_map_inside(compose, &r);
|
|
|
else
|
|
|
*compose = r;
|
|
|
if (dev->has_crop_cap && !dev->has_compose_cap) {
|
|
@@ -683,9 +684,9 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv,
|
|
|
factor * r.height * MAX_ZOOM
|
|
|
};
|
|
|
|
|
|
- rect_set_min_size(crop, &min_r);
|
|
|
- rect_set_max_size(crop, &max_r);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_min_size(crop, &min_r);
|
|
|
+ v4l2_rect_set_max_size(crop, &max_r);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
} else if (dev->has_crop_cap) {
|
|
|
struct v4l2_rect min_r = {
|
|
|
0, 0,
|
|
@@ -698,27 +699,27 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv,
|
|
|
factor * compose->height * MAX_ZOOM
|
|
|
};
|
|
|
|
|
|
- rect_set_min_size(crop, &min_r);
|
|
|
- rect_set_max_size(crop, &max_r);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_min_size(crop, &min_r);
|
|
|
+ v4l2_rect_set_max_size(crop, &max_r);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
}
|
|
|
} else if (dev->has_crop_cap && !dev->has_compose_cap) {
|
|
|
r.height *= factor;
|
|
|
- rect_set_size_to(crop, &r);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_size_to(crop, &r);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
r = *crop;
|
|
|
r.height /= factor;
|
|
|
- rect_set_size_to(compose, &r);
|
|
|
+ v4l2_rect_set_size_to(compose, &r);
|
|
|
} else if (!dev->has_crop_cap) {
|
|
|
- rect_map_inside(compose, &r);
|
|
|
+ v4l2_rect_map_inside(compose, &r);
|
|
|
} else {
|
|
|
r.height *= factor;
|
|
|
- rect_set_max_size(crop, &r);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_max_size(crop, &r);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
compose->top *= factor;
|
|
|
compose->height *= factor;
|
|
|
- rect_set_size_to(compose, crop);
|
|
|
- rect_map_inside(compose, &r);
|
|
|
+ v4l2_rect_set_size_to(compose, crop);
|
|
|
+ v4l2_rect_map_inside(compose, &r);
|
|
|
compose->top /= factor;
|
|
|
compose->height /= factor;
|
|
|
}
|
|
@@ -735,9 +736,9 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv,
|
|
|
} else {
|
|
|
struct v4l2_rect r = { 0, 0, mp->width, mp->height };
|
|
|
|
|
|
- rect_set_size_to(compose, &r);
|
|
|
+ v4l2_rect_set_size_to(compose, &r);
|
|
|
r.height *= factor;
|
|
|
- rect_set_size_to(crop, &r);
|
|
|
+ v4l2_rect_set_size_to(crop, &r);
|
|
|
}
|
|
|
|
|
|
dev->fmt_cap_rect.width = mp->width;
|
|
@@ -886,9 +887,9 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
|
|
|
ret = vivid_vid_adjust_sel(s->flags, &s->r);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
- rect_set_min_size(&s->r, &vivid_min_rect);
|
|
|
- rect_set_max_size(&s->r, &dev->src_rect);
|
|
|
- rect_map_inside(&s->r, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_min_size(&s->r, &vivid_min_rect);
|
|
|
+ v4l2_rect_set_max_size(&s->r, &dev->src_rect);
|
|
|
+ v4l2_rect_map_inside(&s->r, &dev->crop_bounds_cap);
|
|
|
s->r.top /= factor;
|
|
|
s->r.height /= factor;
|
|
|
if (dev->has_scaler_cap) {
|
|
@@ -904,36 +905,36 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
|
|
|
s->r.height / MAX_ZOOM
|
|
|
};
|
|
|
|
|
|
- rect_set_min_size(&fmt, &min_rect);
|
|
|
+ v4l2_rect_set_min_size(&fmt, &min_rect);
|
|
|
if (!dev->has_compose_cap)
|
|
|
- rect_set_max_size(&fmt, &max_rect);
|
|
|
- if (!rect_same_size(&dev->fmt_cap_rect, &fmt) &&
|
|
|
+ v4l2_rect_set_max_size(&fmt, &max_rect);
|
|
|
+ if (!v4l2_rect_same_size(&dev->fmt_cap_rect, &fmt) &&
|
|
|
vb2_is_busy(&dev->vb_vid_cap_q))
|
|
|
return -EBUSY;
|
|
|
if (dev->has_compose_cap) {
|
|
|
- rect_set_min_size(compose, &min_rect);
|
|
|
- rect_set_max_size(compose, &max_rect);
|
|
|
+ v4l2_rect_set_min_size(compose, &min_rect);
|
|
|
+ v4l2_rect_set_max_size(compose, &max_rect);
|
|
|
}
|
|
|
dev->fmt_cap_rect = fmt;
|
|
|
tpg_s_buf_height(&dev->tpg, fmt.height);
|
|
|
} else if (dev->has_compose_cap) {
|
|
|
struct v4l2_rect fmt = dev->fmt_cap_rect;
|
|
|
|
|
|
- rect_set_min_size(&fmt, &s->r);
|
|
|
- if (!rect_same_size(&dev->fmt_cap_rect, &fmt) &&
|
|
|
+ v4l2_rect_set_min_size(&fmt, &s->r);
|
|
|
+ if (!v4l2_rect_same_size(&dev->fmt_cap_rect, &fmt) &&
|
|
|
vb2_is_busy(&dev->vb_vid_cap_q))
|
|
|
return -EBUSY;
|
|
|
dev->fmt_cap_rect = fmt;
|
|
|
tpg_s_buf_height(&dev->tpg, fmt.height);
|
|
|
- rect_set_size_to(compose, &s->r);
|
|
|
- rect_map_inside(compose, &dev->fmt_cap_rect);
|
|
|
+ v4l2_rect_set_size_to(compose, &s->r);
|
|
|
+ v4l2_rect_map_inside(compose, &dev->fmt_cap_rect);
|
|
|
} else {
|
|
|
- if (!rect_same_size(&s->r, &dev->fmt_cap_rect) &&
|
|
|
+ if (!v4l2_rect_same_size(&s->r, &dev->fmt_cap_rect) &&
|
|
|
vb2_is_busy(&dev->vb_vid_cap_q))
|
|
|
return -EBUSY;
|
|
|
- rect_set_size_to(&dev->fmt_cap_rect, &s->r);
|
|
|
- rect_set_size_to(compose, &s->r);
|
|
|
- rect_map_inside(compose, &dev->fmt_cap_rect);
|
|
|
+ v4l2_rect_set_size_to(&dev->fmt_cap_rect, &s->r);
|
|
|
+ v4l2_rect_set_size_to(compose, &s->r);
|
|
|
+ v4l2_rect_map_inside(compose, &dev->fmt_cap_rect);
|
|
|
tpg_s_buf_height(&dev->tpg, dev->fmt_cap_rect.height);
|
|
|
}
|
|
|
s->r.top *= factor;
|
|
@@ -946,8 +947,8 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
|
|
|
ret = vivid_vid_adjust_sel(s->flags, &s->r);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
- rect_set_min_size(&s->r, &vivid_min_rect);
|
|
|
- rect_set_max_size(&s->r, &dev->fmt_cap_rect);
|
|
|
+ v4l2_rect_set_min_size(&s->r, &vivid_min_rect);
|
|
|
+ v4l2_rect_set_max_size(&s->r, &dev->fmt_cap_rect);
|
|
|
if (dev->has_scaler_cap) {
|
|
|
struct v4l2_rect max_rect = {
|
|
|
0, 0,
|
|
@@ -955,7 +956,7 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
|
|
|
(dev->src_rect.height / factor) * MAX_ZOOM
|
|
|
};
|
|
|
|
|
|
- rect_set_max_size(&s->r, &max_rect);
|
|
|
+ v4l2_rect_set_max_size(&s->r, &max_rect);
|
|
|
if (dev->has_crop_cap) {
|
|
|
struct v4l2_rect min_rect = {
|
|
|
0, 0,
|
|
@@ -968,23 +969,23 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
|
|
|
(s->r.height * factor) * MAX_ZOOM
|
|
|
};
|
|
|
|
|
|
- rect_set_min_size(crop, &min_rect);
|
|
|
- rect_set_max_size(crop, &max_rect);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_min_size(crop, &min_rect);
|
|
|
+ v4l2_rect_set_max_size(crop, &max_rect);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
}
|
|
|
} else if (dev->has_crop_cap) {
|
|
|
s->r.top *= factor;
|
|
|
s->r.height *= factor;
|
|
|
- rect_set_max_size(&s->r, &dev->src_rect);
|
|
|
- rect_set_size_to(crop, &s->r);
|
|
|
- rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
+ v4l2_rect_set_max_size(&s->r, &dev->src_rect);
|
|
|
+ v4l2_rect_set_size_to(crop, &s->r);
|
|
|
+ v4l2_rect_map_inside(crop, &dev->crop_bounds_cap);
|
|
|
s->r.top /= factor;
|
|
|
s->r.height /= factor;
|
|
|
} else {
|
|
|
- rect_set_size_to(&s->r, &dev->src_rect);
|
|
|
+ v4l2_rect_set_size_to(&s->r, &dev->src_rect);
|
|
|
s->r.height /= factor;
|
|
|
}
|
|
|
- rect_map_inside(&s->r, &dev->fmt_cap_rect);
|
|
|
+ v4l2_rect_map_inside(&s->r, &dev->fmt_cap_rect);
|
|
|
if (dev->bitmap_cap && (compose->width != s->r.width ||
|
|
|
compose->height != s->r.height)) {
|
|
|
kfree(dev->bitmap_cap);
|
|
@@ -1124,7 +1125,7 @@ int vidioc_try_fmt_vid_overlay(struct file *file, void *priv,
|
|
|
for (j = i + 1; j < win->clipcount; j++) {
|
|
|
struct v4l2_rect *r2 = &dev->try_clips_cap[j].c;
|
|
|
|
|
|
- if (rect_overlap(r1, r2))
|
|
|
+ if (v4l2_rect_overlap(r1, r2))
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
}
|