* [PATCH] media: v4l2-subdev: Fix stream handling for crop API
@ 2024-04-01 23:37 Laurent Pinchart
2024-04-02 6:04 ` Tomi Valkeinen
2024-04-02 8:20 ` Sakari Ailus
0 siblings, 2 replies; 11+ messages in thread
From: Laurent Pinchart @ 2024-04-01 23:37 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Tomi Valkeinen, Hans Verkuil
When support for streams was added to the V4L2 subdev API, the
v4l2_subdev_crop structure was extended with a stream field, but the
field was not handled in the core code that translates the
VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
index 4c6198c48dd6..45836f0a2b0a 100644
--- a/drivers/media/v4l2-core/v4l2-subdev.c
+++ b/drivers/media/v4l2-core/v4l2-subdev.c
@@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
memset(&sel, 0, sizeof(sel));
sel.which = crop->which;
sel.pad = crop->pad;
+ sel.stream = crop->stream;
sel.target = V4L2_SEL_TGT_CROP;
rval = v4l2_subdev_call(
@@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
memset(&sel, 0, sizeof(sel));
sel.which = crop->which;
sel.pad = crop->pad;
+ sel.stream = crop->stream;
sel.target = V4L2_SEL_TGT_CROP;
sel.r = crop->rect;
base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
--
Regards,
Laurent Pinchart
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-01 23:37 [PATCH] media: v4l2-subdev: Fix stream handling for crop API Laurent Pinchart
@ 2024-04-02 6:04 ` Tomi Valkeinen
2024-04-02 8:20 ` Sakari Ailus
1 sibling, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2024-04-02 6:04 UTC (permalink / raw)
To: Laurent Pinchart, linux-media; +Cc: Sakari Ailus, Hans Verkuil
On 02/04/2024 02:37, Laurent Pinchart wrote:
> When support for streams was added to the V4L2 subdev API, the
> v4l2_subdev_crop structure was extended with a stream field, but the
> field was not handled in the core code that translates the
> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
>
> Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index 4c6198c48dd6..45836f0a2b0a 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> memset(&sel, 0, sizeof(sel));
> sel.which = crop->which;
> sel.pad = crop->pad;
> + sel.stream = crop->stream;
> sel.target = V4L2_SEL_TGT_CROP;
>
> rval = v4l2_subdev_call(
> @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> memset(&sel, 0, sizeof(sel));
> sel.which = crop->which;
> sel.pad = crop->pad;
> + sel.stream = crop->stream;
> sel.target = V4L2_SEL_TGT_CROP;
> sel.r = crop->rect;
>
>
> base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Tomi
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-01 23:37 [PATCH] media: v4l2-subdev: Fix stream handling for crop API Laurent Pinchart
2024-04-02 6:04 ` Tomi Valkeinen
@ 2024-04-02 8:20 ` Sakari Ailus
2024-04-02 8:44 ` Laurent Pinchart
1 sibling, 1 reply; 11+ messages in thread
From: Sakari Ailus @ 2024-04-02 8:20 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, Tomi Valkeinen, Hans Verkuil
Moi,
On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> When support for streams was added to the V4L2 subdev API, the
> v4l2_subdev_crop structure was extended with a stream field, but the
> field was not handled in the core code that translates the
> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
The field is indeed in the UAPI headers. But do we want to support the CROP
IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
instead?
>
> Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index 4c6198c48dd6..45836f0a2b0a 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> memset(&sel, 0, sizeof(sel));
> sel.which = crop->which;
> sel.pad = crop->pad;
> + sel.stream = crop->stream;
> sel.target = V4L2_SEL_TGT_CROP;
>
> rval = v4l2_subdev_call(
> @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> memset(&sel, 0, sizeof(sel));
> sel.which = crop->which;
> sel.pad = crop->pad;
> + sel.stream = crop->stream;
> sel.target = V4L2_SEL_TGT_CROP;
> sel.r = crop->rect;
>
>
> base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
--
Terveisin,
Sakari Ailus
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 8:20 ` Sakari Ailus
@ 2024-04-02 8:44 ` Laurent Pinchart
2024-04-02 8:46 ` Sakari Ailus
0 siblings, 1 reply; 11+ messages in thread
From: Laurent Pinchart @ 2024-04-02 8:44 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, Tomi Valkeinen, Hans Verkuil
On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> Moi,
>
> On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> > When support for streams was added to the V4L2 subdev API, the
> > v4l2_subdev_crop structure was extended with a stream field, but the
> > field was not handled in the core code that translates the
> > VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
>
> The field is indeed in the UAPI headers. But do we want to support the CROP
> IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> instead?
They should, but if the field is there, we should support it :-) The
alternative is to remove it. It will cause failures in v4l2-compliance
that we'll need to handle though.
> > Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> > drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> > index 4c6198c48dd6..45836f0a2b0a 100644
> > --- a/drivers/media/v4l2-core/v4l2-subdev.c
> > +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> > @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> > memset(&sel, 0, sizeof(sel));
> > sel.which = crop->which;
> > sel.pad = crop->pad;
> > + sel.stream = crop->stream;
> > sel.target = V4L2_SEL_TGT_CROP;
> >
> > rval = v4l2_subdev_call(
> > @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> > memset(&sel, 0, sizeof(sel));
> > sel.which = crop->which;
> > sel.pad = crop->pad;
> > + sel.stream = crop->stream;
> > sel.target = V4L2_SEL_TGT_CROP;
> > sel.r = crop->rect;
> >
> >
> > base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 8:44 ` Laurent Pinchart
@ 2024-04-02 8:46 ` Sakari Ailus
2024-04-02 9:11 ` Tomi Valkeinen
0 siblings, 1 reply; 11+ messages in thread
From: Sakari Ailus @ 2024-04-02 8:46 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, Tomi Valkeinen, Hans Verkuil
On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
> On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> > Moi,
> >
> > On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> > > When support for streams was added to the V4L2 subdev API, the
> > > v4l2_subdev_crop structure was extended with a stream field, but the
> > > field was not handled in the core code that translates the
> > > VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
> >
> > The field is indeed in the UAPI headers. But do we want to support the CROP
> > IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> > instead?
>
> They should, but if the field is there, we should support it :-) The
> alternative is to remove it. It will cause failures in v4l2-compliance
> that we'll need to handle though.
I'd prefer to stick to selections here, this is new functionality so
[GS]_CROP support isn't required. I don't have a strong opinion on the
matter though.
>
> > > Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > ---
> > > drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> > > index 4c6198c48dd6..45836f0a2b0a 100644
> > > --- a/drivers/media/v4l2-core/v4l2-subdev.c
> > > +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> > > @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> > > memset(&sel, 0, sizeof(sel));
> > > sel.which = crop->which;
> > > sel.pad = crop->pad;
> > > + sel.stream = crop->stream;
> > > sel.target = V4L2_SEL_TGT_CROP;
> > >
> > > rval = v4l2_subdev_call(
> > > @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> > > memset(&sel, 0, sizeof(sel));
> > > sel.which = crop->which;
> > > sel.pad = crop->pad;
> > > + sel.stream = crop->stream;
> > > sel.target = V4L2_SEL_TGT_CROP;
> > > sel.r = crop->rect;
> > >
> > >
> > > base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
>
> --
> Regards,
>
> Laurent Pinchart
--
Sakari Ailus
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 8:46 ` Sakari Ailus
@ 2024-04-02 9:11 ` Tomi Valkeinen
2024-04-02 9:22 ` Laurent Pinchart
2024-04-02 15:23 ` Sakari Ailus
0 siblings, 2 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2024-04-02 9:11 UTC (permalink / raw)
To: Sakari Ailus, Laurent Pinchart; +Cc: linux-media, Hans Verkuil
On 02/04/2024 11:46, Sakari Ailus wrote:
> On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
>> On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
>>> Moi,
>>>
>>> On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
>>>> When support for streams was added to the V4L2 subdev API, the
>>>> v4l2_subdev_crop structure was extended with a stream field, but the
>>>> field was not handled in the core code that translates the
>>>> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
>>>
>>> The field is indeed in the UAPI headers. But do we want to support the CROP
>>> IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
>>> instead?
>>
>> They should, but if the field is there, we should support it :-) The
>> alternative is to remove it. It will cause failures in v4l2-compliance
>> that we'll need to handle though.
>
> I'd prefer to stick to selections here, this is new functionality so
> [GS]_CROP support isn't required. I don't have a strong opinion on the
> matter though.
Maybe it's easier to just support the stream field, instead of making
[GS]_CROP the odd case which looks like it should support streams, but
then doesn't...
Tomi
>>
>>>> Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
>>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>> ---
>>>> drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
>>>> index 4c6198c48dd6..45836f0a2b0a 100644
>>>> --- a/drivers/media/v4l2-core/v4l2-subdev.c
>>>> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
>>>> @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
>>>> memset(&sel, 0, sizeof(sel));
>>>> sel.which = crop->which;
>>>> sel.pad = crop->pad;
>>>> + sel.stream = crop->stream;
>>>> sel.target = V4L2_SEL_TGT_CROP;
>>>>
>>>> rval = v4l2_subdev_call(
>>>> @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
>>>> memset(&sel, 0, sizeof(sel));
>>>> sel.which = crop->which;
>>>> sel.pad = crop->pad;
>>>> + sel.stream = crop->stream;
>>>> sel.target = V4L2_SEL_TGT_CROP;
>>>> sel.r = crop->rect;
>>>>
>>>>
>>>> base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
>>
>> --
>> Regards,
>>
>> Laurent Pinchart
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 9:11 ` Tomi Valkeinen
@ 2024-04-02 9:22 ` Laurent Pinchart
2024-04-02 15:23 ` Sakari Ailus
1 sibling, 0 replies; 11+ messages in thread
From: Laurent Pinchart @ 2024-04-02 9:22 UTC (permalink / raw)
To: Tomi Valkeinen; +Cc: Sakari Ailus, linux-media, Hans Verkuil
On Tue, Apr 02, 2024 at 12:11:30PM +0300, Tomi Valkeinen wrote:
> On 02/04/2024 11:46, Sakari Ailus wrote:
> > On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
> >> On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> >>> Moi,
> >>>
> >>> On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> >>>> When support for streams was added to the V4L2 subdev API, the
> >>>> v4l2_subdev_crop structure was extended with a stream field, but the
> >>>> field was not handled in the core code that translates the
> >>>> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
> >>>
> >>> The field is indeed in the UAPI headers. But do we want to support the CROP
> >>> IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> >>> instead?
> >>
> >> They should, but if the field is there, we should support it :-) The
> >> alternative is to remove it. It will cause failures in v4l2-compliance
> >> that we'll need to handle though.
> >
> > I'd prefer to stick to selections here, this is new functionality so
> > [GS]_CROP support isn't required. I don't have a strong opinion on the
> > matter though.
>
> Maybe it's easier to just support the stream field, instead of making
> [GS]_CROP the odd case which looks like it should support streams, but
> then doesn't...
I'll let the two of you argue and decide, and implement the result :-)
> >>>> Fixes: 2f91e10ee6fd ("media: subdev: add stream based configuration")
> >>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>> ---
> >>>> drivers/media/v4l2-core/v4l2-subdev.c | 2 ++
> >>>> 1 file changed, 2 insertions(+)
> >>>>
> >>>> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> >>>> index 4c6198c48dd6..45836f0a2b0a 100644
> >>>> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> >>>> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> >>>> @@ -732,6 +732,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> >>>> memset(&sel, 0, sizeof(sel));
> >>>> sel.which = crop->which;
> >>>> sel.pad = crop->pad;
> >>>> + sel.stream = crop->stream;
> >>>> sel.target = V4L2_SEL_TGT_CROP;
> >>>>
> >>>> rval = v4l2_subdev_call(
> >>>> @@ -756,6 +757,7 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> >>>> memset(&sel, 0, sizeof(sel));
> >>>> sel.which = crop->which;
> >>>> sel.pad = crop->pad;
> >>>> + sel.stream = crop->stream;
> >>>> sel.target = V4L2_SEL_TGT_CROP;
> >>>> sel.r = crop->rect;
> >>>>
> >>>>
> >>>> base-commit: 39cd87c4eb2b893354f3b850f916353f2658ae6f
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 9:11 ` Tomi Valkeinen
2024-04-02 9:22 ` Laurent Pinchart
@ 2024-04-02 15:23 ` Sakari Ailus
2024-04-02 20:11 ` Laurent Pinchart
1 sibling, 1 reply; 11+ messages in thread
From: Sakari Ailus @ 2024-04-02 15:23 UTC (permalink / raw)
To: Tomi Valkeinen; +Cc: Laurent Pinchart, linux-media, Hans Verkuil
Moi,
On Tue, Apr 02, 2024 at 12:11:30PM +0300, Tomi Valkeinen wrote:
> On 02/04/2024 11:46, Sakari Ailus wrote:
> > On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
> > > On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> > > > Moi,
> > > >
> > > > On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> > > > > When support for streams was added to the V4L2 subdev API, the
> > > > > v4l2_subdev_crop structure was extended with a stream field, but the
> > > > > field was not handled in the core code that translates the
> > > > > VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
> > > >
> > > > The field is indeed in the UAPI headers. But do we want to support the CROP
> > > > IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> > > > instead?
> > >
> > > They should, but if the field is there, we should support it :-) The
> > > alternative is to remove it. It will cause failures in v4l2-compliance
> > > that we'll need to handle though.
> >
> > I'd prefer to stick to selections here, this is new functionality so
> > [GS]_CROP support isn't required. I don't have a strong opinion on the
> > matter though.
>
> Maybe it's easier to just support the stream field, instead of making
> [GS]_CROP the odd case which looks like it should support streams, but then
> doesn't...
It's an old IOCTL already replaced by the [GS]_SELECTION. I mainly write
kernel space software but overall I think it's better if we can provide a
single API for controlling cropping instead of two with similar
functionality, of which the user then should choose from.
It should be also documented in this context if we choose support
[GS]_CROP.
So I believe we have less work to do and have a better result if we just
drop the stream field there. :-)
--
Terveisin,
Sakari Ailus
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 15:23 ` Sakari Ailus
@ 2024-04-02 20:11 ` Laurent Pinchart
2024-04-03 6:51 ` Tomi Valkeinen
0 siblings, 1 reply; 11+ messages in thread
From: Laurent Pinchart @ 2024-04-02 20:11 UTC (permalink / raw)
To: Sakari Ailus; +Cc: Tomi Valkeinen, linux-media, Hans Verkuil
On Tue, Apr 02, 2024 at 03:23:03PM +0000, Sakari Ailus wrote:
> On Tue, Apr 02, 2024 at 12:11:30PM +0300, Tomi Valkeinen wrote:
> > On 02/04/2024 11:46, Sakari Ailus wrote:
> > > On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
> > > > On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> > > > > Moi,
> > > > >
> > > > > On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> > > > > > When support for streams was added to the V4L2 subdev API, the
> > > > > > v4l2_subdev_crop structure was extended with a stream field, but the
> > > > > > field was not handled in the core code that translates the
> > > > > > VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
> > > > >
> > > > > The field is indeed in the UAPI headers. But do we want to support the CROP
> > > > > IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> > > > > instead?
> > > >
> > > > They should, but if the field is there, we should support it :-) The
> > > > alternative is to remove it. It will cause failures in v4l2-compliance
> > > > that we'll need to handle though.
> > >
> > > I'd prefer to stick to selections here, this is new functionality so
> > > [GS]_CROP support isn't required. I don't have a strong opinion on the
> > > matter though.
> >
> > Maybe it's easier to just support the stream field, instead of making
> > [GS]_CROP the odd case which looks like it should support streams, but then
> > doesn't...
>
> It's an old IOCTL already replaced by the [GS]_SELECTION. I mainly write
> kernel space software but overall I think it's better if we can provide a
> single API for controlling cropping instead of two with similar
> functionality, of which the user then should choose from.
>
> It should be also documented in this context if we choose support
> [GS]_CROP.
>
> So I believe we have less work to do and have a better result if we just
> drop the stream field there. :-)
I tend to agree, even if that's only a slight preference. Tomi, if
you're fine with this, I'll update the patch.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-02 20:11 ` Laurent Pinchart
@ 2024-04-03 6:51 ` Tomi Valkeinen
2024-04-03 7:01 ` Laurent Pinchart
0 siblings, 1 reply; 11+ messages in thread
From: Tomi Valkeinen @ 2024-04-03 6:51 UTC (permalink / raw)
To: Laurent Pinchart, Sakari Ailus; +Cc: linux-media, Hans Verkuil
On 02/04/2024 23:11, Laurent Pinchart wrote:
> On Tue, Apr 02, 2024 at 03:23:03PM +0000, Sakari Ailus wrote:
>> On Tue, Apr 02, 2024 at 12:11:30PM +0300, Tomi Valkeinen wrote:
>>> On 02/04/2024 11:46, Sakari Ailus wrote:
>>>> On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
>>>>> On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
>>>>>> Moi,
>>>>>>
>>>>>> On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
>>>>>>> When support for streams was added to the V4L2 subdev API, the
>>>>>>> v4l2_subdev_crop structure was extended with a stream field, but the
>>>>>>> field was not handled in the core code that translates the
>>>>>>> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
>>>>>>
>>>>>> The field is indeed in the UAPI headers. But do we want to support the CROP
>>>>>> IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
>>>>>> instead?
>>>>>
>>>>> They should, but if the field is there, we should support it :-) The
>>>>> alternative is to remove it. It will cause failures in v4l2-compliance
>>>>> that we'll need to handle though.
>>>>
>>>> I'd prefer to stick to selections here, this is new functionality so
>>>> [GS]_CROP support isn't required. I don't have a strong opinion on the
>>>> matter though.
>>>
>>> Maybe it's easier to just support the stream field, instead of making
>>> [GS]_CROP the odd case which looks like it should support streams, but then
>>> doesn't...
>>
>> It's an old IOCTL already replaced by the [GS]_SELECTION. I mainly write
>> kernel space software but overall I think it's better if we can provide a
>> single API for controlling cropping instead of two with similar
>> functionality, of which the user then should choose from.
>>
>> It should be also documented in this context if we choose support
>> [GS]_CROP.
>>
>> So I believe we have less work to do and have a better result if we just
>> drop the stream field there. :-)
>
> I tend to agree, even if that's only a slight preference. Tomi, if
> you're fine with this, I'll update the patch.
I'm fine with it. So we now should move the 'stream' field back to
reserved, and add documentation saying that [GS]_CROP works differently
than the other ioctls?
Tomi
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: v4l2-subdev: Fix stream handling for crop API
2024-04-03 6:51 ` Tomi Valkeinen
@ 2024-04-03 7:01 ` Laurent Pinchart
0 siblings, 0 replies; 11+ messages in thread
From: Laurent Pinchart @ 2024-04-03 7:01 UTC (permalink / raw)
To: Tomi Valkeinen; +Cc: Sakari Ailus, linux-media, Hans Verkuil
On Wed, Apr 03, 2024 at 09:51:01AM +0300, Tomi Valkeinen wrote:
> On 02/04/2024 23:11, Laurent Pinchart wrote:
> > On Tue, Apr 02, 2024 at 03:23:03PM +0000, Sakari Ailus wrote:
> >> On Tue, Apr 02, 2024 at 12:11:30PM +0300, Tomi Valkeinen wrote:
> >>> On 02/04/2024 11:46, Sakari Ailus wrote:
> >>>> On Tue, Apr 02, 2024 at 11:44:07AM +0300, Laurent Pinchart wrote:
> >>>>> On Tue, Apr 02, 2024 at 08:20:22AM +0000, Sakari Ailus wrote:
> >>>>>> Moi,
> >>>>>>
> >>>>>> On Tue, Apr 02, 2024 at 02:37:25AM +0300, Laurent Pinchart wrote:
> >>>>>>> When support for streams was added to the V4L2 subdev API, the
> >>>>>>> v4l2_subdev_crop structure was extended with a stream field, but the
> >>>>>>> field was not handled in the core code that translates the
> >>>>>>> VIDIOC_SUBDEV_[GS]_CROP ioctls to the selection API. Fix it.
> >>>>>>
> >>>>>> The field is indeed in the UAPI headers. But do we want to support the CROP
> >>>>>> IOCTL for streams? Shouldn't the callers be using the [GS]_SELECTION
> >>>>>> instead?
> >>>>>
> >>>>> They should, but if the field is there, we should support it :-) The
> >>>>> alternative is to remove it. It will cause failures in v4l2-compliance
> >>>>> that we'll need to handle though.
> >>>>
> >>>> I'd prefer to stick to selections here, this is new functionality so
> >>>> [GS]_CROP support isn't required. I don't have a strong opinion on the
> >>>> matter though.
> >>>
> >>> Maybe it's easier to just support the stream field, instead of making
> >>> [GS]_CROP the odd case which looks like it should support streams, but then
> >>> doesn't...
> >>
> >> It's an old IOCTL already replaced by the [GS]_SELECTION. I mainly write
> >> kernel space software but overall I think it's better if we can provide a
> >> single API for controlling cropping instead of two with similar
> >> functionality, of which the user then should choose from.
> >>
> >> It should be also documented in this context if we choose support
> >> [GS]_CROP.
> >>
> >> So I believe we have less work to do and have a better result if we just
> >> drop the stream field there. :-)
> >
> > I tend to agree, even if that's only a slight preference. Tomi, if
> > you're fine with this, I'll update the patch.
>
> I'm fine with it. So we now should move the 'stream' field back to
> reserved, and add documentation saying that [GS]_CROP works differently
> than the other ioctls?
That's the idea. I'll send patches.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-04-03 7:01 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-01 23:37 [PATCH] media: v4l2-subdev: Fix stream handling for crop API Laurent Pinchart
2024-04-02 6:04 ` Tomi Valkeinen
2024-04-02 8:20 ` Sakari Ailus
2024-04-02 8:44 ` Laurent Pinchart
2024-04-02 8:46 ` Sakari Ailus
2024-04-02 9:11 ` Tomi Valkeinen
2024-04-02 9:22 ` Laurent Pinchart
2024-04-02 15:23 ` Sakari Ailus
2024-04-02 20:11 ` Laurent Pinchart
2024-04-03 6:51 ` Tomi Valkeinen
2024-04-03 7:01 ` Laurent Pinchart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox