Re: [PATCH] media: uvc: limit max bandwidth for HDMI capture
From: Nicolas Dufresne <hidden>
Date: 2021-06-25 19:18:21
Also in:
lkml
Le mardi 22 juin 2021 à 10:29 +0200, Mauro Carvalho Chehab a écrit :
Em Mon, 21 Jun 2021 21:22:26 +0300 Laurent Pinchart [off-list ref] escreveu:quoted
Hi Mauro, Thank you for the patch.Thanks for reviewing it!quoted
On Mon, Feb 01, 2021 at 08:08:59PM +0100, Mauro Carvalho Chehab wrote:quoted
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