Lines Matching refs:geo
506 static void vou_adjust_input(struct sh_vou_geometry *geo, v4l2_std_id std)
518 v4l_bound_align_image(&geo->in_width,
520 &geo->in_height,
526 unsigned int found = geo->output.width * vou_scale_h_den[i] /
533 err = abs(found - geo->in_width);
543 geo->in_width = best;
544 geo->scale_idx_h = idx;
551 unsigned int found = geo->output.height * vou_scale_v_den[i] /
558 err = abs(found - geo->in_height);
568 geo->in_height = best;
569 geo->scale_idx_v = idx;
576 static void vou_adjust_output(struct sh_vou_geometry *geo, v4l2_std_id std)
578 unsigned int best_err = UINT_MAX, best = geo->in_width,
595 unsigned int found = geo->in_width * vou_scale_h_num[i] /
602 err = abs(found - geo->output.width);
612 geo->output.width = best;
613 geo->scale_idx_h = idx_h;
614 if (geo->output.left + best > width_max)
615 geo->output.left = width_max - best;
617 pr_debug("%s(): W %u * %u/%u = %u\n", __func__, geo->in_width,
625 unsigned int found = geo->in_height * vou_scale_v_num[i] /
632 err = abs(found - geo->output.height);
642 geo->output.height = best;
643 geo->scale_idx_v = idx_v;
644 if (geo->output.top + best > height_max)
645 geo->output.top = height_max - best;
647 pr_debug("%s(): H %u * %u/%u = %u\n", __func__, geo->in_height,
691 struct sh_vou_geometry geo;
710 geo.in_width = pix->width;
711 geo.in_height = pix->height;
712 geo.output = vou_dev->rect;
714 vou_adjust_output(&geo, vou_dev->std);
716 mbfmt->width = geo.output.width;
717 mbfmt->height = geo.output.height;
725 geo.output.width, geo.output.height, mbfmt->width, mbfmt->height);
738 if (mbfmt->width != geo.output.width ||
739 mbfmt->height != geo.output.height) {
740 geo.output.width = mbfmt->width;
741 geo.output.height = mbfmt->height;
743 vou_adjust_input(&geo, vou_dev->std);
747 vou_dev->rect = geo.output;
748 pix->width = geo.in_width;
749 pix->height = geo.in_height;
759 geo.scale_idx_h, geo.scale_idx_v);
933 struct sh_vou_geometry geo;
967 geo.output = *rect;
968 geo.in_width = pix->width;
969 geo.in_height = pix->height;
972 sd_sel.r.width = geo.output.width;
973 sd_sel.r.height = geo.output.height;
980 format.format.width = geo.output.width;
981 format.format.height = geo.output.height;
994 geo.output.width = format.format.width;
995 geo.output.height = format.format.height;
1001 vou_adjust_input(&geo, vou_dev->std);
1004 vou_dev->rect = geo.output;
1005 pix->width = geo.in_width;
1006 pix->height = geo.in_height;
1009 geo.scale_idx_h, geo.scale_idx_v);