All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Niklas <niklas.soderlund@ragnatech.se>,
	"Lad, Prabhakar" <prabhakar.csengg@gmail.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	linux-media <linux-media@vger.kernel.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Biju Das <biju.das.jz@bp.renesas.com>
Subject: Re: [PATCH] media: rcar-vin: Update crop and compose settings for every s_fmt call
Date: Wed, 19 Aug 2020 16:08:01 +0200	[thread overview]
Message-ID: <6d659e56-1e1f-c9c7-2e66-4ddc4e7fad15@xs4all.nl> (raw)
In-Reply-To: <20200803192108.GB2297236@oden.dyn.berto.se>

On 03/08/2020 21:21, Niklas wrote:
> Hi Lad, Hans,
> 
> On 2020-08-03 19:11:32 +0100, Lad, Prabhakar wrote:
>> Hi Hans,
>>
>> On Sat, Aug 1, 2020 at 10:04 AM Niklas <niklas.soderlund@ragnatech.se> wrote:
>>>
>>> Hi Lad,
>>>
>>> Thanks for your work.
>>>
>>> On 2020-07-31 10:29:05 +0100, Lad Prabhakar wrote:
>>>> The crop and compose settings for VIN in non mc mode werent updated
>>>> in s_fmt call this resulted in captured images being clipped.
>>>>
>>>> With the below sequence on the third capture where size is set to
>>>> 640x480 resulted in clipped image of size 320x240.
>>>>
>>>> high(640x480) -> low (320x240) -> high (640x480)
>>>>
>>>> This patch makes sure the VIN crop and compose settings are updated.
>>>
>>> This is clearly an inconsistency in the VIN driver that should be fixed.
>>> But I think the none-mc mode implements the correct behavior. That is
>>> that S_FMT should not modify the crop/compose rectangles other then make
>>> sure they don't go out of bounds. This is an area we tried to clarify in
>>> the past but I'm still not sure what the correct answer to.
>>>
>> What should be the exact behaviour of the bridge driver  for s_fmt
>> call. Should the crop/compose settings be updated for every s_fmt
>> callback or should they be only updated on s_selection callback.
>> Currently the non-mc rcar-vin doesnt update the crop/compose setting
>> in s_fmt callback due to which I see the above issue as mentioned.
> 
> This is not entirely correct. It does update the crop and compose 
> rectangles on s_fmt, it makes sure they are not out-of-bounds for the 
> new format if it's accepted by s_fmt. See v4l2_rect_map_inside() calls 
> in the snippet bellow.

For non-mc mode s_fmt must update any crop/compose rectangles to ensure that
they are not out-of-bounds. But for mc mode the validation is done when you
start streaming, so I think s_fmt won't make any changes in that mode.

Double-check that with Laurent, though...

Regards,

	Hans

> 
> That being said there is a difference how this is handled in the VIN 
> driver between it's MC and non-MC modes and I would love to learn the 
> correct mode of operation and seeing VIN being updated to doing it 
> correct in both cases. Thanks Lad for dealing with this!
> 
>>
>> Cheers,
>> Prabhakar
>>
>>>>
>>>> Fixes: 104464f573d ("media: rcar-vin: Do not reset the crop and compose rectangles in s_fmt")
>>>> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>>>> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
>>>> ---
>>>>  drivers/media/platform/rcar-vin/rcar-v4l2.c | 6 ++++++
>>>>  1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
>>>> index f421e25..a9b13d9 100644
>>>> --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
>>>> +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
>>>> @@ -319,6 +319,12 @@ static int rvin_s_fmt_vid_cap(struct file *file, void *priv,
>>>>       fmt_rect.width = vin->format.width;
>>>>       fmt_rect.height = vin->format.height;
>>>>
>>>> +     vin->crop.top = 0;
>>>> +     vin->crop.left = 0;
>>>> +     vin->crop.width = vin->format.width;
>>>> +     vin->crop.height = vin->format.height;
>>>> +     vin->compose = vin->crop;
>>>> +
>>>>       v4l2_rect_map_inside(&vin->crop, &src_rect);
>>>>       v4l2_rect_map_inside(&vin->compose, &fmt_rect);
>>>>       vin->src_rect = src_rect;
>>>> --
>>>> 2.7.4
>>>>
>>>
>>> --
>>> Regards,
>>> Niklas Söderlund
> 


  parent reply	other threads:[~2020-08-19 14:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-31  9:29 [PATCH] media: rcar-vin: Update crop and compose settings for every s_fmt call Lad Prabhakar
2020-08-01  9:04 ` Niklas
2020-08-03 18:11   ` Lad, Prabhakar
2020-08-03 19:21     ` Niklas
2020-08-13 14:24       ` Lad, Prabhakar
2020-08-19 14:08       ` Hans Verkuil [this message]
2020-09-03 14:53         ` Lad, Prabhakar
2020-09-04  2:25           ` Laurent Pinchart
2020-09-06 19:12             ` Lad, Prabhakar
2020-09-08 15:35               ` Niklas

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=6d659e56-1e1f-c9c7-2e66-4ddc4e7fad15@xs4all.nl \
    --to=hverkuil-cisco@xs4all.nl \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=prabhakar.csengg@gmail.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    /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.