lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 19 Aug 2020 16:08:01 +0200
From:   Hans Verkuil <hverkuil-cisco@...all.nl>
To:     Niklas <niklas.soderlund@...natech.se>,
        "Lad, Prabhakar" <prabhakar.csengg@...il.com>
Cc:     Laurent Pinchart <laurent.pinchart+renesas@...asonboard.com>,
        Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>,
        Mauro Carvalho Chehab <mchehab@...nel.org>,
        Kieran Bingham <kieran.bingham+renesas@...asonboard.com>,
        linux-media <linux-media@...r.kernel.org>,
        Linux-Renesas <linux-renesas-soc@...r.kernel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        Biju Das <biju.das.jz@...renesas.com>
Subject: Re: [PATCH] media: rcar-vin: Update crop and compose settings for
 every s_fmt call

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@...natech.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@...renesas.com>
>>>> Reviewed-by: Biju Das <biju.das.jz@...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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ