Lines Matching defs:geo
504 static void vou_adjust_input(struct sh_vou_geometry *geo, v4l2_std_id std)
516 v4l_bound_align_image(&geo->in_width,
518 &geo->in_height,
524 unsigned int found = geo->output.width * vou_scale_h_den[i] /
531 err = abs(found - geo->in_width);
541 geo->in_width = best;
542 geo->scale_idx_h = idx;
549 unsigned int found = geo->output.height * vou_scale_v_den[i] /
556 err = abs(found - geo->in_height);
566 geo->in_height = best;
567 geo->scale_idx_v = idx;
574 static void vou_adjust_output(struct sh_vou_geometry *geo, v4l2_std_id std)
576 unsigned int best_err = UINT_MAX, best = geo->in_width,
593 unsigned int found = geo->in_width * vou_scale_h_num[i] /
600 err = abs(found - geo->output.width);
610 geo->output.width = best;
611 geo->scale_idx_h = idx_h;
612 if (geo->output.left + best > width_max)
613 geo->output.left = width_max - best;
615 pr_debug("%s(): W %u * %u/%u = %u\n", __func__, geo->in_width,
623 unsigned int found = geo->in_height * vou_scale_v_num[i] /
630 err = abs(found - geo->output.height);
640 geo->output.height = best;
641 geo->scale_idx_v = idx_v;
642 if (geo->output.top + best > height_max)
643 geo->output.top = height_max - best;
645 pr_debug("%s(): H %u * %u/%u = %u\n", __func__, geo->in_height,
689 struct sh_vou_geometry geo;
708 geo.in_width = pix->width;
709 geo.in_height = pix->height;
710 geo.output = vou_dev->rect;
712 vou_adjust_output(&geo, vou_dev->std);
714 mbfmt->width = geo.output.width;
715 mbfmt->height = geo.output.height;
723 geo.output.width, geo.output.height, mbfmt->width, mbfmt->height);
736 if (mbfmt->width != geo.output.width ||
737 mbfmt->height != geo.output.height) {
738 geo.output.width = mbfmt->width;
739 geo.output.height = mbfmt->height;
741 vou_adjust_input(&geo, vou_dev->std);
745 vou_dev->rect = geo.output;
746 pix->width = geo.in_width;
747 pix->height = geo.in_height;
757 geo.scale_idx_h, geo.scale_idx_v);
931 struct sh_vou_geometry geo;
965 geo.output = *rect;
966 geo.in_width = pix->width;
967 geo.in_height = pix->height;
970 sd_sel.r.width = geo.output.width;
971 sd_sel.r.height = geo.output.height;
978 format.format.width = geo.output.width;
979 format.format.height = geo.output.height;
992 geo.output.width = format.format.width;
993 geo.output.height = format.format.height;
999 vou_adjust_input(&geo, vou_dev->std);
1002 vou_dev->rect = geo.output;
1003 pix->width = geo.in_width;
1004 pix->height = geo.in_height;
1007 geo.scale_idx_h, geo.scale_idx_v);