Home
last modified time | relevance | path

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

123456

/kernel/linux/linux-5.10/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,
/kernel/linux/linux-5.10/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()
/kernel/linux/linux-5.10/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.c105 struct v4l2_rect *crop; in vsp1_rwpf_set_format() local
108 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_format()
109 crop->left = 0; in vsp1_rwpf_set_format()
110 crop->top = 0; in vsp1_rwpf_set_format()
111 crop->width = fmt->format.width; in vsp1_rwpf_set_format()
112 crop->height = fmt->format.height; in vsp1_rwpf_set_format()
185 struct v4l2_rect *crop; in vsp1_rwpf_set_selection() local
228 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_selection()
229 *crop = sel->r; in vsp1_rwpf_set_selection()
234 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.c206 struct v4l2_rect *crop; in histo_get_selection() local
223 crop = vsp1_entity_get_pad_selection(&histo->entity, config, in histo_get_selection()
228 sel->r.width = crop->width; in histo_get_selection()
229 sel->r.height = crop->height; in histo_get_selection()
295 struct v4l2_rect *crop; in histo_set_compose() local
306 crop = vsp1_entity_get_pad_selection(&histo->entity, config, sel->pad, in histo_set_compose()
323 sel->r.width = clamp(sel->r.width, crop->width / 4, crop->width); in histo_set_compose()
324 ratio = 1 << (crop->width * 2 / sel->r.width / 3); in histo_set_compose()
325 sel->r.width = crop->width / ratio; in histo_set_compose()
328 sel->r.height = clamp(sel->r.height, crop->height / 4, crop->height); in histo_set_compose()
[all …]
Dvsp1_uif.c199 const struct v4l2_rect *crop; in uif_configure_stream() local
206 crop = vsp1_entity_get_pad_selection(entity, entity->config, in uif_configure_stream()
209 left = crop->left; in uif_configure_stream()
210 width = crop->width; in uif_configure_stream()
219 vsp1_uif_write(uif, dlb, VI6_UIF_DISCOM_DOCMSPYR, crop->top); in uif_configure_stream()
221 vsp1_uif_write(uif, dlb, VI6_UIF_DISCOM_DOCMSZYR, crop->height); in uif_configure_stream()
/kernel/linux/linux-5.10/drivers/staging/media/imx/
Dimx-media-csi.c81 struct v4l2_rect crop; member
711 struct v4l2_rect crop; in csi_setup() local
724 crop = priv->crop; in csi_setup()
732 crop.width *= incc->cycles; in csi_setup()
735 ipu_csi_set_window(priv->csi, &crop); in csi_setup()
738 priv->crop.width == 2 * priv->compose.width, in csi_setup()
739 priv->crop.height == 2 * priv->compose.height); in csi_setup()
1181 return &priv->crop; in __csi_get_crop()
1196 struct v4l2_rect *crop, in csi_try_crop() argument
1203 crop->width = min_t(__u32, infmt->width, crop->width); in csi_try_crop()
[all …]
/kernel/linux/linux-5.10/drivers/staging/media/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()
/kernel/linux/linux-5.10/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
/kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/
Datomisp_subdev.c266 return &isp_sd->fmt[pad].crop; in atomisp_subdev_get_rect()
290 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_get_fmt_rect()
297 crop[i] = atomisp_subdev_get_rect(sd, cfg, which, i, in isp_get_fmt_rect()
310 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_subdev_propagate() local
316 isp_get_fmt_rect(sd, cfg, which, ffmt, crop, comp); in isp_subdev_propagate()
376 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in atomisp_subdev_set_selection() local
385 isp_get_fmt_rect(sd, cfg, which, ffmt, crop, comp); in atomisp_subdev_set_selection()
403 crop[pad]->width = ffmt[pad]->width; in atomisp_subdev_set_selection()
404 crop[pad]->height = ffmt[pad]->height; in atomisp_subdev_set_selection()
409 "ov2722", 6) && crop[pad]->height == 1092) { in atomisp_subdev_set_selection()
[all …]
/kernel/linux/linux-5.10/drivers/media/platform/omap3isp/
Dispresizer.c139 return &res->crop.request; in __resizer_get_crop()
505 clock = div_u64((u64)limit * res->crop.active.height, ofmt->height); in omap3isp_resizer_max_rate()
507 *max_rate = div_u64((u64)clock * res->crop.active.width, ofmt->width); in omap3isp_resizer_max_rate()
586 requests_per_frame = DIV_ROUND_UP(res->crop.active.width * 2, 256) in resizer_adjust_bandwidth()
587 * res->crop.active.height; in resizer_adjust_bandwidth()
924 res->crop_offset = (res->crop.active.top * input->width + in resizer_set_crop_params()
925 res->crop.active.left) * 2; in resizer_set_crop_params()
944 resizer_set_start(res, res->crop.active.left * 2, in resizer_set_crop_params()
945 res->crop.active.top); in resizer_set_crop_params()
952 resizer_set_input_size(res, res->crop.active.width, in resizer_set_crop_params()
[all …]
/kernel/linux/linux-5.10/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()
/kernel/linux/linux-5.10/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)
/kernel/linux/linux-5.10/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
276 return &mt9t001->crop; in __mt9t001_get_pad_crop()
289 struct v4l2_rect *crop = &mt9t001->crop; in mt9t001_s_stream() local
306 hratio = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9t001_s_stream()
307 vratio = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9t001_s_stream()
317 ret = mt9t001_write(client, MT9T001_COLUMN_START, crop->left); in mt9t001_s_stream()
321 ret = mt9t001_write(client, MT9T001_ROW_START, crop->top); in mt9t001_s_stream()
325 ret = mt9t001_write(client, MT9T001_WINDOW_WIDTH, crop->width - 1); in mt9t001_s_stream()
329 ret = mt9t001_write(client, MT9T001_WINDOW_HEIGHT, crop->height - 1); in mt9t001_s_stream()
799 struct v4l2_rect *crop; in mt9t001_open() local
[all …]
Dmt9v032.c189 struct v4l2_rect crop; member
248 struct v4l2_rect *crop = &mt9v032->crop; in mt9v032_update_hblank() local
254 min_hblank = max_t(int, mt9v032->model->data->min_row_time - crop->width, in mt9v032_update_hblank()
373 return &mt9v032->crop; in __mt9v032_get_pad_crop()
384 struct v4l2_rect *crop = &mt9v032->crop; in mt9v032_s_stream() local
403 ret = regmap_write(map, MT9V032_COLUMN_START, crop->left); in mt9v032_s_stream()
407 ret = regmap_write(map, MT9V032_ROW_START, crop->top); in mt9v032_s_stream()
411 ret = regmap_write(map, MT9V032_WINDOW_WIDTH, crop->width); in mt9v032_s_stream()
415 ret = regmap_write(map, MT9V032_WINDOW_HEIGHT, crop->height); in mt9v032_s_stream()
923 struct v4l2_rect *crop; in mt9v032_open() local
[all …]
Dmt9p031.c124 struct v4l2_rect crop; /* Sensor window */ member
386 const struct v4l2_rect *crop = &mt9p031->crop; in mt9p031_set_params() local
401 ret = mt9p031_write(client, MT9P031_COLUMN_START, crop->left); in mt9p031_set_params()
404 ret = mt9p031_write(client, MT9P031_ROW_START, crop->top); in mt9p031_set_params()
407 ret = mt9p031_write(client, MT9P031_WINDOW_WIDTH, crop->width - 1); in mt9p031_set_params()
410 ret = mt9p031_write(client, MT9P031_WINDOW_HEIGHT, crop->height - 1); in mt9p031_set_params()
417 xskip = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9p031_set_params()
418 yskip = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9p031_set_params()
552 return &mt9p031->crop; in __mt9p031_get_pad_crop()
970 struct v4l2_rect *crop; in mt9p031_open() local
[all …]
/kernel/linux/linux-5.10/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 …]
Dgsc-regs.c127 cfg = GSC_SRCIMG_OFFSET_X(frame->crop.left); in gsc_hw_set_in_size()
128 cfg |= GSC_SRCIMG_OFFSET_Y(frame->crop.top); in gsc_hw_set_in_size()
137 cfg = GSC_CROPPED_WIDTH(frame->crop.width); in gsc_hw_set_in_size()
138 cfg |= GSC_CROPPED_HEIGHT(frame->crop.height); in gsc_hw_set_in_size()
241 cfg = GSC_DSTIMG_OFFSET_X(frame->crop.left); in gsc_hw_set_out_size()
242 cfg |= GSC_DSTIMG_OFFSET_Y(frame->crop.top); in gsc_hw_set_out_size()
253 cfg = GSC_SCALED_WIDTH(frame->crop.height); in gsc_hw_set_out_size()
254 cfg |= GSC_SCALED_HEIGHT(frame->crop.width); in gsc_hw_set_out_size()
256 cfg = GSC_SCALED_WIDTH(frame->crop.width); in gsc_hw_set_out_size()
257 cfg |= GSC_SCALED_HEIGHT(frame->crop.height); in gsc_hw_set_out_size()
/kernel/linux/linux-5.10/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