Re: [PATCH] media: uvc: limit max bandwidth for HDMI capture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le mardi 22 juin 2021 à 10:29 +0200, Mauro Carvalho Chehab a écrit :
> Em Mon, 21 Jun 2021 21:22:26 +0300
> Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> 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

This is the emulated format handler that decodes jpeg behind application back
that is broken. The converter should implement this in a nicer way. E.g. it
could return ERROR buffer with payload = 0 in that case.

> 
> 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.
> 
> 
> Sent a v2 addressing the issues you pointed.
> 
> 
> Thanks,
> Mauro





[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux