From: Archit Taneja <archit@ti.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: k.debski@samsung.com, linux-media@vger.kernel.org,
linux-omap@vger.kernel.org
Subject: Re: [PATCH v2 7/7] v4l: ti-vpe: Add selection API in VPE driver
Date: Tue, 4 Mar 2014 16:55:22 +0530 [thread overview]
Message-ID: <5315B822.7010005@ti.com> (raw)
In-Reply-To: <53159F7D.8020707@xs4all.nl>
Hi,
On Tuesday 04 March 2014 03:10 PM, Hans Verkuil wrote:
> Hi Archit,
>
> On 03/04/14 09:49, Archit Taneja wrote:
>> Add selection ioctl ops. For VPE, cropping makes sense only for the input to
>> VPE(or V4L2_BUF_TYPE_VIDEO_OUTPUT/MPLANE buffers) and composing makes sense
>> only for the output of VPE(or V4L2_BUF_TYPE_VIDEO_CAPTURE/MPLANE buffers).
>>
>> For the CAPTURE type, V4L2_SEL_TGT_COMPOSE results in VPE writing the output
>> in a rectangle within the capture buffer. For the OUTPUT type, V4L2_SEL_TGT_CROP
>> results in selecting a rectangle region within the source buffer.
>>
>> Setting the crop/compose rectangles should successfully result in
>> re-configuration of registers which are affected when either source or
>> destination dimensions change, set_srcdst_params() is called for this purpose.
>>
>> Signed-off-by: Archit Taneja <archit@ti.com>
>> ---
>> drivers/media/platform/ti-vpe/vpe.c | 142 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 142 insertions(+)
>>
>> diff --git a/drivers/media/platform/ti-vpe/vpe.c b/drivers/media/platform/ti-vpe/vpe.c
>> index 03a6846..b938590 100644
>> --- a/drivers/media/platform/ti-vpe/vpe.c
>> +++ b/drivers/media/platform/ti-vpe/vpe.c
>> @@ -410,8 +410,10 @@ static struct vpe_q_data *get_q_data(struct vpe_ctx *ctx,
>> {
>> switch (type) {
>> case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
>> + case V4L2_BUF_TYPE_VIDEO_OUTPUT:
>> return &ctx->q_data[Q_DATA_SRC];
>> case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
>> + case V4L2_BUF_TYPE_VIDEO_CAPTURE:
>
> I noticed that the querycap implementation is wrong. It reports
> V4L2_CAP_VIDEO_M2M instead of V4L2_CAP_VIDEO_M2M_MPLANE.
>
> This driver is using the multiplanar formats, so the M2M_MPLANE cap should
> be set.
>
> This should be a separate patch.
Thanks for pointing this out, I'll make a patch for that.
>
> BTW, did you test the driver with the v4l2-compliance tool? The latest version
> (http://git.linuxtv.org/v4l-utils.git) has m2m support.
>
I haven't tested it with this yet.
> However, if you want to test streaming (the -s option), then you will probably
> need to base your kernel on this tree:
>
> http://git.linuxtv.org/hverkuil/media_tree.git/shortlog/refs/heads/vb2-part1
I can give it a try. It'll probably take a bit more time to try this
out. I'll need to port some minor DRA7x stuff.
Kamil,
Do you think you have some more time for the m2m pull request?
>
> That branch contains a pile of fixes for vb2 and without that v4l2-compliance -s
> will fail a number of tests.
>
>> return &ctx->q_data[Q_DATA_DST];
>> default:
>> BUG();
>> @@ -1585,6 +1587,143 @@ static int vpe_s_fmt(struct file *file, void *priv, struct v4l2_format *f)
>> return set_srcdst_params(ctx);
>> }
>>
>> +static int __vpe_try_selection(struct vpe_ctx *ctx, struct v4l2_selection *s)
>> +{
>> + struct vpe_q_data *q_data;
>> +
>> + if ((s->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
>> + (s->type != V4L2_BUF_TYPE_VIDEO_OUTPUT))
>> + return -EINVAL;
>> +
>> + q_data = get_q_data(ctx, s->type);
>> + if (!q_data)
>> + return -EINVAL;
>> +
>> + switch (s->target) {
>> + case V4L2_SEL_TGT_COMPOSE:
>> + case V4L2_SEL_TGT_COMPOSE_DEFAULT:
>> + case V4L2_SEL_TGT_COMPOSE_BOUNDS:
>> + /*
>> + * COMPOSE target is only valid for capture buffer type, for
>> + * output buffer type, assign existing crop parameters to the
>> + * selection rectangle
>> + */
>> + if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
>> + break;
>> + } else {
>
> No need for the 'else' keywork here.
>
>> + s->r = q_data->c_rect;
>> + return 0;
>> + }
>> +
>> + case V4L2_SEL_TGT_CROP:
>> + case V4L2_SEL_TGT_CROP_DEFAULT:
>> + case V4L2_SEL_TGT_CROP_BOUNDS:
>> + /*
>> + * CROP target is only valid for output buffer type, for capture
>> + * buffer type, assign existing compose parameters to the
>> + * selection rectangle
>> + */
>> + if (s->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
>> + break;
>> + } else {
>
> Ditto.
Thanks. I'll fix these.
I had a minor question about the selection API:
Are the V4L2_SET_TGT_CROP/COMPOSE_DEFAULT and the corresponding 'BOUNDS'
targets supposed to be used with VIDIOC_S_SELECTION? If so, what's the
expect behaviour?
Thanks,
Archit
WARNING: multiple messages have this Message-ID (diff)
From: Archit Taneja <archit@ti.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: <k.debski@samsung.com>, <linux-media@vger.kernel.org>,
<linux-omap@vger.kernel.org>
Subject: Re: [PATCH v2 7/7] v4l: ti-vpe: Add selection API in VPE driver
Date: Tue, 4 Mar 2014 16:55:22 +0530 [thread overview]
Message-ID: <5315B822.7010005@ti.com> (raw)
In-Reply-To: <53159F7D.8020707@xs4all.nl>
Hi,
On Tuesday 04 March 2014 03:10 PM, Hans Verkuil wrote:
> Hi Archit,
>
> On 03/04/14 09:49, Archit Taneja wrote:
>> Add selection ioctl ops. For VPE, cropping makes sense only for the input to
>> VPE(or V4L2_BUF_TYPE_VIDEO_OUTPUT/MPLANE buffers) and composing makes sense
>> only for the output of VPE(or V4L2_BUF_TYPE_VIDEO_CAPTURE/MPLANE buffers).
>>
>> For the CAPTURE type, V4L2_SEL_TGT_COMPOSE results in VPE writing the output
>> in a rectangle within the capture buffer. For the OUTPUT type, V4L2_SEL_TGT_CROP
>> results in selecting a rectangle region within the source buffer.
>>
>> Setting the crop/compose rectangles should successfully result in
>> re-configuration of registers which are affected when either source or
>> destination dimensions change, set_srcdst_params() is called for this purpose.
>>
>> Signed-off-by: Archit Taneja <archit@ti.com>
>> ---
>> drivers/media/platform/ti-vpe/vpe.c | 142 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 142 insertions(+)
>>
>> diff --git a/drivers/media/platform/ti-vpe/vpe.c b/drivers/media/platform/ti-vpe/vpe.c
>> index 03a6846..b938590 100644
>> --- a/drivers/media/platform/ti-vpe/vpe.c
>> +++ b/drivers/media/platform/ti-vpe/vpe.c
>> @@ -410,8 +410,10 @@ static struct vpe_q_data *get_q_data(struct vpe_ctx *ctx,
>> {
>> switch (type) {
>> case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
>> + case V4L2_BUF_TYPE_VIDEO_OUTPUT:
>> return &ctx->q_data[Q_DATA_SRC];
>> case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
>> + case V4L2_BUF_TYPE_VIDEO_CAPTURE:
>
> I noticed that the querycap implementation is wrong. It reports
> V4L2_CAP_VIDEO_M2M instead of V4L2_CAP_VIDEO_M2M_MPLANE.
>
> This driver is using the multiplanar formats, so the M2M_MPLANE cap should
> be set.
>
> This should be a separate patch.
Thanks for pointing this out, I'll make a patch for that.
>
> BTW, did you test the driver with the v4l2-compliance tool? The latest version
> (http://git.linuxtv.org/v4l-utils.git) has m2m support.
>
I haven't tested it with this yet.
> However, if you want to test streaming (the -s option), then you will probably
> need to base your kernel on this tree:
>
> http://git.linuxtv.org/hverkuil/media_tree.git/shortlog/refs/heads/vb2-part1
I can give it a try. It'll probably take a bit more time to try this
out. I'll need to port some minor DRA7x stuff.
Kamil,
Do you think you have some more time for the m2m pull request?
>
> That branch contains a pile of fixes for vb2 and without that v4l2-compliance -s
> will fail a number of tests.
>
>> return &ctx->q_data[Q_DATA_DST];
>> default:
>> BUG();
>> @@ -1585,6 +1587,143 @@ static int vpe_s_fmt(struct file *file, void *priv, struct v4l2_format *f)
>> return set_srcdst_params(ctx);
>> }
>>
>> +static int __vpe_try_selection(struct vpe_ctx *ctx, struct v4l2_selection *s)
>> +{
>> + struct vpe_q_data *q_data;
>> +
>> + if ((s->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
>> + (s->type != V4L2_BUF_TYPE_VIDEO_OUTPUT))
>> + return -EINVAL;
>> +
>> + q_data = get_q_data(ctx, s->type);
>> + if (!q_data)
>> + return -EINVAL;
>> +
>> + switch (s->target) {
>> + case V4L2_SEL_TGT_COMPOSE:
>> + case V4L2_SEL_TGT_COMPOSE_DEFAULT:
>> + case V4L2_SEL_TGT_COMPOSE_BOUNDS:
>> + /*
>> + * COMPOSE target is only valid for capture buffer type, for
>> + * output buffer type, assign existing crop parameters to the
>> + * selection rectangle
>> + */
>> + if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
>> + break;
>> + } else {
>
> No need for the 'else' keywork here.
>
>> + s->r = q_data->c_rect;
>> + return 0;
>> + }
>> +
>> + case V4L2_SEL_TGT_CROP:
>> + case V4L2_SEL_TGT_CROP_DEFAULT:
>> + case V4L2_SEL_TGT_CROP_BOUNDS:
>> + /*
>> + * CROP target is only valid for output buffer type, for capture
>> + * buffer type, assign existing compose parameters to the
>> + * selection rectangle
>> + */
>> + if (s->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
>> + break;
>> + } else {
>
> Ditto.
Thanks. I'll fix these.
I had a minor question about the selection API:
Are the V4L2_SET_TGT_CROP/COMPOSE_DEFAULT and the corresponding 'BOUNDS'
targets supposed to be used with VIDIOC_S_SELECTION? If so, what's the
expect behaviour?
Thanks,
Archit
next prev parent reply other threads:[~2014-03-04 11:25 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-03 7:33 [PATCH 0/7] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 1/7] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 2/7] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 3/7] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 4/7] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 5/7] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 12:14 ` Kamil Debski
2014-03-03 12:41 ` Archit Taneja
2014-03-03 12:41 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 6/7] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:33 ` [PATCH 7/7] v4l: ti-vpe: Add crop support in VPE driver Archit Taneja
2014-03-03 7:33 ` Archit Taneja
2014-03-03 7:50 ` Hans Verkuil
2014-03-03 8:26 ` Archit Taneja
2014-03-03 8:26 ` Archit Taneja
2014-03-03 12:21 ` Kamil Debski
2014-03-03 12:36 ` Archit Taneja
2014-03-03 12:36 ` Archit Taneja
2014-03-04 7:38 ` Archit Taneja
2014-03-04 7:38 ` Archit Taneja
2014-03-04 7:43 ` Hans Verkuil
2014-03-04 8:26 ` Archit Taneja
2014-03-04 8:26 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 0/7] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 1/7] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 2/7] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 3/7] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 4/7] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 5/7] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 6/7] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 8:49 ` [PATCH v2 7/7] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-04 8:49 ` Archit Taneja
2014-03-04 9:40 ` Hans Verkuil
2014-03-04 11:25 ` Archit Taneja [this message]
2014-03-04 11:25 ` Archit Taneja
2014-03-04 11:35 ` Hans Verkuil
2014-03-07 11:50 ` Archit Taneja
2014-03-07 11:50 ` Archit Taneja
2014-03-07 12:59 ` Hans Verkuil
2014-03-07 13:22 ` Archit Taneja
2014-03-07 13:22 ` Archit Taneja
2014-03-07 13:32 ` Hans Verkuil
2014-03-07 13:47 ` Archit Taneja
2014-03-07 13:47 ` Archit Taneja
2014-03-10 12:12 ` Archit Taneja
2014-03-10 12:12 ` Archit Taneja
2014-03-10 12:33 ` Hans Verkuil
2014-03-04 13:28 ` Kamil Debski
2014-03-11 8:33 ` [PATCH v3 00/14] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 01/14] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-13 14:36 ` Kamil Debski
2014-03-11 8:33 ` [PATCH v3 02/14] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-13 11:48 ` Kamil Debski
2014-03-13 12:09 ` Archit Taneja
2014-03-13 12:09 ` Archit Taneja
2014-03-13 14:29 ` Kamil Debski
2014-03-14 9:51 ` Archit Taneja
2014-03-14 9:51 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 03/14] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:02 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 04/14] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:03 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 05/14] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:03 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 06/14] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 07/14] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:21 ` Hans Verkuil
2014-03-11 12:46 ` Archit Taneja
2014-03-11 12:46 ` Archit Taneja
2014-03-11 12:49 ` Hans Verkuil
2014-03-11 13:10 ` Archit Taneja
2014-03-11 13:10 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 08/14] v4l: ti-vpe: Rename csc memory resource name Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 8:33 ` [PATCH v3 09/14] v4l: ti-vpe: report correct capabilities in querycap Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:23 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 10/14] v4l: ti-vpe: Use correct bus_info name for the device " Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:23 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 11/14] v4l: ti-vpe: Fix initial configuration queue data Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:24 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 12/14] v4l: ti-vpe: zero out reserved fields in try_fmt Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:25 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 13/14] v4l: ti-vpe: Set correct field parameter for output and capture buffers Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:29 ` Hans Verkuil
2014-03-11 8:33 ` [PATCH v3 14/14] v4l: ti-vpe: retain v4l2_buffer flags for captured buffers Archit Taneja
2014-03-11 8:33 ` Archit Taneja
2014-03-11 12:31 ` Hans Verkuil
2014-03-13 11:44 ` [PATCH v4 00/14] v4l: ti-vpe: Some VPE fixes and enhancements Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 01/14] v4l: ti-vpe: Make sure in job_ready that we have the needed number of dst_bufs Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 14:38 ` Kamil Debski
2014-03-13 11:44 ` [PATCH v4 02/14] v4l: ti-vpe: register video device only when firmware is loaded Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 03/14] v4l: ti-vpe: Use video_device_release_empty Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 04/14] v4l: ti-vpe: Allow DMABUF buffer type support Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 05/14] v4l: ti-vpe: Allow usage of smaller images Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 06/14] v4l: ti-vpe: Fix some params in VPE data descriptors Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 15:01 ` Kamil Debski
2014-03-13 11:44 ` [PATCH v4 07/14] v4l: ti-vpe: Add selection API in VPE driver Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 08/14] v4l: ti-vpe: Rename csc memory resource name Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 14:44 ` Kamil Debski
2014-03-14 6:18 ` Archit Taneja
2014-03-14 6:18 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 09/14] v4l: ti-vpe: report correct capabilities in querycap Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 10/14] v4l: ti-vpe: Use correct bus_info name for the device " Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 11/14] v4l: ti-vpe: Fix initial configuration queue data Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 12/14] v4l: ti-vpe: zero out reserved fields in try_fmt Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 13/14] v4l: ti-vpe: Set correct field parameter for output and capture buffers Archit Taneja
2014-03-13 11:44 ` Archit Taneja
2014-03-13 11:44 ` [PATCH v4 14/14] v4l: ti-vpe: retain v4l2_buffer flags for captured buffers Archit Taneja
2014-03-13 11:44 ` Archit Taneja
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5315B822.7010005@ti.com \
--to=archit@ti.com \
--cc=hverkuil@xs4all.nl \
--cc=k.debski@samsung.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.