Home
last modified time | relevance | path

Searched refs:crop (Results 1 – 25 of 137) sorted by relevance

123456

/Linux-v5.15/drivers/media/platform/omap/
Domap_voutlib.c44 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop) in omap_vout_default_crop() argument
46 crop->width = (pix->width < fbuf->fmt.width) ? in omap_vout_default_crop()
48 crop->height = (pix->height < fbuf->fmt.height) ? in omap_vout_default_crop()
50 crop->width &= ~1; in omap_vout_default_crop()
51 crop->height &= ~1; in omap_vout_default_crop()
52 crop->left = ((pix->width - crop->width) >> 1) & ~1; in omap_vout_default_crop()
53 crop->top = ((pix->height - crop->height) >> 1) & ~1; in omap_vout_default_crop()
115 int omap_vout_new_window(struct v4l2_rect *crop, in omap_vout_new_window() argument
133 if ((crop->height/win->w.height) >= 2) in omap_vout_new_window()
134 crop->height = win->w.height * 2; in omap_vout_new_window()
[all …]
Domap_vout_vrfb.c322 struct v4l2_rect *crop = &vout->crop; in omap_vout_calculate_vrfb_offset() local
354 ctop = (pix->height - crop->height) - crop->top; in omap_vout_calculate_vrfb_offset()
355 cleft = (pix->width - crop->width) - crop->left; in omap_vout_calculate_vrfb_offset()
367 temp_ps * cleft + crop->top * temp_ps; in omap_vout_calculate_vrfb_offset()
370 cleft + crop->top * temp_ps + (line_length * in omap_vout_calculate_vrfb_offset()
371 ((crop->width / (vr_ps)) - 1) * ps); in omap_vout_calculate_vrfb_offset()
386 (crop->height - 1) * ps); in omap_vout_calculate_vrfb_offset()
395 temp_ps * crop->left + ctop * ps; in omap_vout_calculate_vrfb_offset()
398 temp_ps * crop->left + ctop * ps + in omap_vout_calculate_vrfb_offset()
399 (line_length * ((crop->width / vr_ps) - 1) * in omap_vout_calculate_vrfb_offset()
[all …]
Domap_voutlib.h16 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop);
19 struct v4l2_rect *crop, struct v4l2_window *win,
26 int omap_vout_new_window(struct v4l2_rect *crop,
31 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop,
/Linux-v5.15/drivers/media/platform/sti/delta/
Ddelta-debug.c25 s->crop.width, s->crop.height, in delta_streaminfo_str()
26 s->crop.left, s->crop.top, in delta_streaminfo_str()
46 f->crop.width, f->crop.height, in delta_frameinfo_str()
47 f->crop.left, f->crop.top, in delta_frameinfo_str()
/Linux-v5.15/drivers/media/platform/vsp1/
Dvsp1_rpf.c251 struct v4l2_rect crop; in rpf_configure_partition() local
261 crop = *vsp1_rwpf_get_crop(rpf, rpf->entity.config); in rpf_configure_partition()
274 crop.width = pipe->partition->rpf.width; in rpf_configure_partition()
275 crop.left += pipe->partition->rpf.left; in rpf_configure_partition()
279 crop.height = round_down(crop.height / 2, fmtinfo->vsub); in rpf_configure_partition()
280 crop.top = round_down(crop.top / 2, fmtinfo->vsub); in rpf_configure_partition()
284 (crop.width << VI6_RPF_SRC_BSIZE_BHSIZE_SHIFT) | in rpf_configure_partition()
285 (crop.height << VI6_RPF_SRC_BSIZE_BVSIZE_SHIFT)); in rpf_configure_partition()
287 (crop.width << VI6_RPF_SRC_ESIZE_EHSIZE_SHIFT) | in rpf_configure_partition()
288 (crop.height << VI6_RPF_SRC_ESIZE_EVSIZE_SHIFT)); in rpf_configure_partition()
[all …]
Dvsp1_hgt.c135 struct v4l2_rect *crop; in hgt_configure_stream() local
142 crop = vsp1_entity_get_pad_selection(entity, entity->config, in hgt_configure_stream()
151 (crop->left << VI6_HGT_OFFSET_HOFFSET_SHIFT) | in hgt_configure_stream()
152 (crop->top << VI6_HGT_OFFSET_VOFFSET_SHIFT)); in hgt_configure_stream()
154 (crop->width << VI6_HGT_SIZE_HSIZE_SHIFT) | in hgt_configure_stream()
155 (crop->height << VI6_HGT_SIZE_VSIZE_SHIFT)); in hgt_configure_stream()
167 hratio = crop->width * 2 / compose->width / 3; in hgt_configure_stream()
168 vratio = crop->height * 2 / compose->height / 3; in hgt_configure_stream()
Dvsp1_rwpf.c107 struct v4l2_rect *crop; in vsp1_rwpf_set_format() local
110 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_format()
111 crop->left = 0; in vsp1_rwpf_set_format()
112 crop->top = 0; in vsp1_rwpf_set_format()
113 crop->width = fmt->format.width; in vsp1_rwpf_set_format()
114 crop->height = fmt->format.height; in vsp1_rwpf_set_format()
188 struct v4l2_rect *crop; in vsp1_rwpf_set_selection() local
232 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_selection()
233 *crop = sel->r; in vsp1_rwpf_set_selection()
238 format->width = crop->width; in vsp1_rwpf_set_selection()
[all …]
Dvsp1_hgo.c139 struct v4l2_rect *crop; in hgo_configure_stream() local
143 crop = vsp1_entity_get_pad_selection(entity, entity->config, in hgo_configure_stream()
152 (crop->left << VI6_HGO_OFFSET_HOFFSET_SHIFT) | in hgo_configure_stream()
153 (crop->top << VI6_HGO_OFFSET_VOFFSET_SHIFT)); in hgo_configure_stream()
155 (crop->width << VI6_HGO_SIZE_HSIZE_SHIFT) | in hgo_configure_stream()
156 (crop->height << VI6_HGO_SIZE_VSIZE_SHIFT)); in hgo_configure_stream()
164 hratio = crop->width * 2 / compose->width / 3; in hgo_configure_stream()
165 vratio = crop->height * 2 / compose->height / 3; in hgo_configure_stream()
Dvsp1_histo.c208 struct v4l2_rect *crop; in histo_get_selection() local
226 crop = vsp1_entity_get_pad_selection(&histo->entity, config, in histo_get_selection()
231 sel->r.width = crop->width; in histo_get_selection()
232 sel->r.height = crop->height; in histo_get_selection()
298 struct v4l2_rect *crop; in histo_set_compose() local
309 crop = vsp1_entity_get_pad_selection(&histo->entity, sd_state, in histo_set_compose()
327 sel->r.width = clamp(sel->r.width, crop->width / 4, crop->width); in histo_set_compose()
328 ratio = 1 << (crop->width * 2 / sel->r.width / 3); in histo_set_compose()
329 sel->r.width = crop->width / ratio; in histo_set_compose()
332 sel->r.height = clamp(sel->r.height, crop->height / 4, crop->height); in histo_set_compose()
[all …]
/Linux-v5.15/drivers/staging/media/imx/
Dimx-media-csi.c81 struct v4l2_rect crop; member
708 struct v4l2_rect crop; in csi_setup() local
721 crop = priv->crop; in csi_setup()
729 crop.width *= incc->cycles; in csi_setup()
732 ipu_csi_set_window(priv->csi, &crop); in csi_setup()
735 priv->crop.width == 2 * priv->compose.width, in csi_setup()
736 priv->crop.height == 2 * priv->compose.height); in csi_setup()
1171 return &priv->crop; in __csi_get_crop()
1186 struct v4l2_rect *crop, in csi_try_crop() argument
1193 crop->width = min_t(__u32, infmt->width, crop->width); in csi_try_crop()
[all …]
/Linux-v5.15/drivers/media/platform/rockchip/rkisp1/
Drkisp1-common.c19 void rkisp1_sd_adjust_crop_rect(struct v4l2_rect *crop, in rkisp1_sd_adjust_crop_rect() argument
22 v4l2_rect_set_min_size(crop, &rkisp1_sd_min_crop); in rkisp1_sd_adjust_crop_rect()
23 v4l2_rect_map_inside(crop, bounds); in rkisp1_sd_adjust_crop_rect()
26 void rkisp1_sd_adjust_crop(struct v4l2_rect *crop, in rkisp1_sd_adjust_crop() argument
36 rkisp1_sd_adjust_crop_rect(crop, &crop_bounds); in rkisp1_sd_adjust_crop()
/Linux-v5.15/Documentation/userspace-api/media/drivers/
Dccs.rst20 as analogue crop functionality present in many compliant devices. The analogue
21 crop is configured using the ``V4L2_SEL_TGT_CROP`` on the source pad (0) of the
32 Additionally, if a device has no scaler or digital crop functionality, the
33 source pad (1) expses another digital crop selection rectangle that can only
34 crop at the end of the lines and frames.
39 The scaler sub-device represents the digital crop and scaling functionality of
41 configure the digital crop on the sink pad (0) when digital crop is supported.
46 another digital crop selection rectangle that can only crop at the end of the
49 Digital and analogue crop
52 Digital crop functionality is referred to as cropping that effectively works by
[all …]
/Linux-v5.15/Documentation/driver-api/media/drivers/ccs/
Dccs.rst20 as analogue crop functionality present in many compliant devices. The analogue
21 crop is configured using the ``V4L2_SEL_TGT_CROP`` on the source pad (0) of the
32 Additionally, if a device has no scaler or digital crop functionality, the
33 source pad (1) expses another digital crop selection rectangle that can only
34 crop at the end of the lines and frames.
39 The scaler sub-device represents the digital crop and scaling functionality of
41 configure the digital crop on the sink pad (0) when digital crop is supported.
46 another digital crop selection rectangle that can only crop at the end of the
49 Digital and analogue crop
52 Digital crop functionality is referred to as cropping that effectively works by
[all …]
/Linux-v5.15/Documentation/userspace-api/media/v4l/
Dcrop.rst15 equivalent in the SELECTION API. See :ref:`selection-vs-crop` for a
64 .. kernel-figure:: crop.svg
65 :alt: crop.svg
170 struct v4l2_crop crop;
180 memset (&crop, 0, sizeof (crop));
181 crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
182 crop.c = cropcap.defrect;
186 if (-1 == ioctl (fd, VIDIOC_S_CROP, &crop)
229 struct v4l2_crop crop;
239 memset (&crop, 0, sizeof (crop));
[all …]
Dvidioc-subdev-g-crop.rst13 VIDIOC_SUBDEV_G_CROP - VIDIOC_SUBDEV_S_CROP - Get or set the crop rectangle on a subdev pad
44 To retrieve the current crop rectangle applications set the ``pad``
53 To change the current crop rectangle applications set both the ``pad``
56 structure. The driver verifies the requested crop rectangle, adjusts it
63 to ``V4L2_SUBDEV_FORMAT_TRY``. When set, 'try' crop rectangles are not
65 crop rectangles and stored in the sub-device file handle. Two
74 Drivers must not return an error solely because the requested crop
111 The crop rectangle can't be changed because the pad is currently
/Linux-v5.15/drivers/staging/media/atomisp/pci/
Datomisp_subdev.c266 return &isp_sd->fmt[pad].crop; in atomisp_subdev_get_rect()
291 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_get_fmt_rect()
298 crop[i] = atomisp_subdev_get_rect(sd, sd_state, which, i, in isp_get_fmt_rect()
311 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_subdev_propagate() local
317 isp_get_fmt_rect(sd, sd_state, which, ffmt, crop, comp); in isp_subdev_propagate()
377 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in atomisp_subdev_set_selection() local
386 isp_get_fmt_rect(sd, sd_state, which, ffmt, crop, comp); in atomisp_subdev_set_selection()
404 crop[pad]->width = ffmt[pad]->width; in atomisp_subdev_set_selection()
405 crop[pad]->height = ffmt[pad]->height; in atomisp_subdev_set_selection()
410 "ov2722", 6) && crop[pad]->height == 1092) { in atomisp_subdev_set_selection()
[all …]
/Linux-v5.15/drivers/media/platform/omap3isp/
Dispresizer.c142 return &res->crop.request; in __resizer_get_crop()
508 clock = div_u64((u64)limit * res->crop.active.height, ofmt->height); in omap3isp_resizer_max_rate()
510 *max_rate = div_u64((u64)clock * res->crop.active.width, ofmt->width); in omap3isp_resizer_max_rate()
589 requests_per_frame = DIV_ROUND_UP(res->crop.active.width * 2, 256) in resizer_adjust_bandwidth()
590 * res->crop.active.height; in resizer_adjust_bandwidth()
927 res->crop_offset = (res->crop.active.top * input->width + in resizer_set_crop_params()
928 res->crop.active.left) * 2; in resizer_set_crop_params()
947 resizer_set_start(res, res->crop.active.left * 2, in resizer_set_crop_params()
948 res->crop.active.top); in resizer_set_crop_params()
955 resizer_set_input_size(res, res->crop.active.width, in resizer_set_crop_params()
[all …]
/Linux-v5.15/drivers/media/platform/mtk-mdp/
Dmtk_mdp_regs.c74 config->crop_x = frame->crop.left; in mtk_mdp_hw_set_in_size()
75 config->crop_y = frame->crop.top; in mtk_mdp_hw_set_in_size()
78 config->crop_w = frame->crop.width; in mtk_mdp_hw_set_in_size()
79 config->crop_h = frame->crop.height; in mtk_mdp_hw_set_in_size()
109 config->crop_x = frame->crop.left; in mtk_mdp_hw_set_out_size()
110 config->crop_y = frame->crop.top; in mtk_mdp_hw_set_out_size()
111 config->crop_w = frame->crop.width; in mtk_mdp_hw_set_out_size()
112 config->crop_h = frame->crop.height; in mtk_mdp_hw_set_out_size()
/Linux-v5.15/drivers/media/platform/meson/ge2d/
Dge2d.c64 struct v4l2_rect crop; member
217 FIELD_PREP(GE2D_START, ctx->in.crop.top) | in ge2d_hw_start()
218 FIELD_PREP(GE2D_END, ctx->in.crop.top + ctx->in.crop.height)); in ge2d_hw_start()
220 FIELD_PREP(GE2D_START, ctx->in.crop.left) | in ge2d_hw_start()
221 FIELD_PREP(GE2D_END, ctx->in.crop.left + ctx->in.crop.width)); in ge2d_hw_start()
223 FIELD_PREP(GE2D_START, ctx->out.crop.top) | in ge2d_hw_start()
224 FIELD_PREP(GE2D_END, ctx->out.crop.top + ctx->out.crop.height)); in ge2d_hw_start()
226 FIELD_PREP(GE2D_START, ctx->out.crop.left) | in ge2d_hw_start()
227 FIELD_PREP(GE2D_END, ctx->out.crop.left + ctx->out.crop.width)); in ge2d_hw_start()
229 FIELD_PREP(GE2D_START, ctx->out.crop.top) | in ge2d_hw_start()
[all …]
/Linux-v5.15/Documentation/driver-api/media/drivers/
Dsh_mobile_ceu_camera.rst76 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at
101 8. Calculate new CEU crop - apply sensor scales to previously calculated
102 "effective" crop:
107 9. Use CEU cropping to crop to the new window:
119 The :ref:`V4L2 crop API <crop-scale>` says:
132 to 2 : 2', target crop 5 : 5', current output format 6' - 6.
142 6. Calculate and apply host crop: 6 - 7 = (5 - 2) * (6' - 6) / (5' - 5)
/Linux-v5.15/drivers/media/i2c/
Dmt9m032.c150 struct v4l2_rect crop; member
183 struct v4l2_rect *crop = &sensor->crop; in mt9m032_update_timing() local
191 row_time = mt9m032_row_time(sensor, crop->width); in mt9m032_update_timing()
195 - crop->height; in mt9m032_update_timing()
201 div_u64((crop->height + MT9M032_VBLANK_MAX) * in mt9m032_update_timing()
206 - crop->height; in mt9m032_update_timing()
221 sensor->crop.width - 1); in mt9m032_update_geom_timing()
224 sensor->crop.height - 1); in mt9m032_update_geom_timing()
227 sensor->crop.left); in mt9m032_update_geom_timing()
230 sensor->crop.top); in mt9m032_update_geom_timing()
[all …]
Dmt9t001.c126 struct v4l2_rect crop; member
280 return &mt9t001->crop; in __mt9t001_get_pad_crop()
293 struct v4l2_rect *crop = &mt9t001->crop; in mt9t001_s_stream() local
310 hratio = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9t001_s_stream()
311 vratio = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9t001_s_stream()
321 ret = mt9t001_write(client, MT9T001_COLUMN_START, crop->left); in mt9t001_s_stream()
325 ret = mt9t001_write(client, MT9T001_ROW_START, crop->top); in mt9t001_s_stream()
329 ret = mt9t001_write(client, MT9T001_WINDOW_WIDTH, crop->width - 1); in mt9t001_s_stream()
333 ret = mt9t001_write(client, MT9T001_WINDOW_HEIGHT, crop->height - 1); in mt9t001_s_stream()
807 struct v4l2_rect *crop; in mt9t001_open() local
[all …]
Dmt9p031.c122 struct v4l2_rect crop; /* Sensor window */ member
383 const struct v4l2_rect *crop = &mt9p031->crop; in mt9p031_set_params() local
398 ret = mt9p031_write(client, MT9P031_COLUMN_START, crop->left); in mt9p031_set_params()
401 ret = mt9p031_write(client, MT9P031_ROW_START, crop->top); in mt9p031_set_params()
404 ret = mt9p031_write(client, MT9P031_WINDOW_WIDTH, crop->width - 1); in mt9p031_set_params()
407 ret = mt9p031_write(client, MT9P031_WINDOW_HEIGHT, crop->height - 1); in mt9p031_set_params()
414 xskip = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9p031_set_params()
415 yskip = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9p031_set_params()
529 return &mt9p031->crop; in __mt9p031_get_pad_crop()
950 struct v4l2_rect *crop; in mt9p031_open() local
[all …]
/Linux-v5.15/drivers/media/platform/exynos-gsc/
Dgsc-core.c234 frame->crop.width = width; in gsc_set_frame_size()
235 frame->crop.height = height; in gsc_set_frame_size()
236 frame->crop.left = 0; in gsc_set_frame_size()
237 frame->crop.top = 0; in gsc_set_frame_size()
292 remainder = s_frame->crop.width % (*wratio * walign); in gsc_check_src_scale_info()
294 s_frame->crop.width -= remainder; in gsc_check_src_scale_info()
295 gsc_cal_prescaler_ratio(var, s_frame->crop.width, tx, wratio); in gsc_check_src_scale_info()
297 s_frame->crop.width + remainder, s_frame->crop.width); in gsc_check_src_scale_info()
300 remainder = s_frame->crop.height % (*hratio * halign); in gsc_check_src_scale_info()
302 s_frame->crop.height -= remainder; in gsc_check_src_scale_info()
[all …]
/Linux-v5.15/drivers/media/pci/bt8xx/
Dbttv-risc.c352 geo->crop = ((width>>8)&0x03) | ((geo->hdelay>>6)&0x0c) | in bttv_calc_geo_old()
376 const struct v4l2_rect * crop) in bttv_calc_geo() argument
382 if ((crop->left == tvnorm->cropcap.defrect.left in bttv_calc_geo()
383 && crop->top == tvnorm->cropcap.defrect.top in bttv_calc_geo()
384 && crop->width == tvnorm->cropcap.defrect.width in bttv_calc_geo()
385 && crop->height == tvnorm->cropcap.defrect.height in bttv_calc_geo()
395 c_width = min((unsigned int) crop->width, width * 16); in bttv_calc_geo()
396 c_height = min((unsigned int) crop->height, height * 16); in bttv_calc_geo()
401 geo->hdelay = ((crop->left * width + c_width) / c_width) & ~1; in bttv_calc_geo()
404 geo->vdelay = crop->top - tvnorm->cropcap.bounds.top + MIN_VDELAY; in bttv_calc_geo()
[all …]

123456