Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d736e348 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] cobalt: add cropcap support



Now that the timings contain picture aspect ratio information,
we can support cropcap to return the pixel aspect ratio.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 65243076
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -1084,12 +1084,33 @@ static int cobalt_g_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
	return 0;
}

static int cobalt_cropcap(struct file *file, void *fh, struct v4l2_cropcap *cc)
{
	struct cobalt_stream *s = video_drvdata(file);
	struct v4l2_dv_timings timings;
	int err = 0;

	if (cc->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
		return -EINVAL;
	if (s->input == 1)
		timings = cea1080p60;
	else
		err = v4l2_subdev_call(s->sd, video, g_dv_timings, &timings);
	if (!err) {
		cc->bounds.width = cc->defrect.width = timings.bt.width;
		cc->bounds.height = cc->defrect.height = timings.bt.height;
		cc->pixelaspect = v4l2_dv_timings_aspect_ratio(&timings);
	}
	return err;
}

static const struct v4l2_ioctl_ops cobalt_ioctl_ops = {
	.vidioc_querycap		= cobalt_querycap,
	.vidioc_g_parm			= cobalt_g_parm,
	.vidioc_log_status		= cobalt_log_status,
	.vidioc_streamon		= vb2_ioctl_streamon,
	.vidioc_streamoff		= vb2_ioctl_streamoff,
	.vidioc_cropcap			= cobalt_cropcap,
	.vidioc_enum_input		= cobalt_enum_input,
	.vidioc_g_input			= cobalt_g_input,
	.vidioc_s_input			= cobalt_s_input,