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]
Message-ID: <CAPY8ntAkb_57Nk_8UR-d_uR+juPigLKWwCAxoFzuCSKwETYpQg@mail.gmail.com>
Date:   Tue, 22 Jun 2021 09:50:37 +0100
From:   Dave Stevenson <dave.stevenson@...pberrypi.com>
To:     Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
Cc:     Laurent Pinchart <laurent.pinchart@...asonboard.com>,
        Linux Media Mailing List <linux-media@...r.kernel.org>,
        linuxarm@...wei.com, mauro.chehab@...wei.com,
        Mauro Carvalho Chehab <mchehab@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] media: uvc: limit max bandwidth for HDMI capture

Hi Mauro

On Tue, 22 Jun 2021 at 09:29, Mauro Carvalho Chehab
<mchehab+huawei@...nel.org> wrote:
>
> Em Mon, 21 Jun 2021 21:22:26 +0300
> Laurent Pinchart <laurent.pinchart@...asonboard.com> escreveu:
>
> > Hi Mauro,
> >
> > Thank you for the patch.
>
> Thanks for reviewing it!
>
> >
> > On Mon, Feb 01, 2021 at 08:08:59PM +0100, Mauro Carvalho Chehab wrote:
> > > This device:
> > >         534d:2109 MacroSilicon
> > >
> > > Announces that it supports several frame intervals for
> > > their resolutions for MJPEG compression:
> > >
> > >         VideoStreaming Interface Descriptor:
> > >         bLength                            46
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                  7 (FRAME_MJPEG)
> > >         bFrameIndex                         1
> > >         bmCapabilities                   0x00
> > >           Still image unsupported
> > >         wWidth                           1920
> > >         wHeight                          1080
> > >         dwMinBitRate                   768000
> > >         dwMaxBitRate                196608000
> > >         dwMaxVideoFrameBufferSize     4147200
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  5
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            333333
> > >         dwFrameInterval( 2)            400000
> > >         dwFrameInterval( 3)            500000
> > >         dwFrameInterval( 4)           1000000
> > >
> > > However, the highest frame interval (166666), which means 60 fps
> > > is not supported. For such resolution, the maximum interval
> > > is, instead 333333 (30 fps).
> >
> > What happens if you try to select it ?
>
> Basically, URBs get lost: they cause apps like qv4l2 to crash
> sometimes, with:
>
>         v4l-convert: libjpeg error: Corrupt JPEG data: premature end of data segment
>
> The image keeps blinking, and part of the image is replaced by
> white noise.
>
> Clearly, it tries to send more data than the maximum available bandwidth
> on this chipset.

What platform are you running this on?
I've previously encountered a USB3 camera module where the datastream
was VERY bursty. The memcpy of the data from URB to V4L2 buffer took
long enough that sometimes the module didn't have an URB to fill at
the appropriate moment, and it dropped data. I seem to recall
increasing UVC_URBS from the default of 5 to 10 to handle the peak
data rate without loss, but it may have been higher still. This was on
a ~1.5GHz Atom processor, so not lacking in performance.

I wonder if the same is true in your case. If it's MJPEG compressed
then the peak rate may again be high. Just a thought.

  Dave

> Sent a v2 addressing the issues you pointed.
>
>
> Thanks,
> Mauro

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ