Hi David On Wed, 11 Sept 2024 at 21:58, David Given <dg@xxxxxxxxxxx> wrote: > > Hello, > > I've just received a review sample thermal camera which doesn't work > with Linux uvcvideo. It's reporting itself as providing a D3DFMT GUID: > > ---snip--- > VideoStreaming Interface Descriptor: > bLength 27 > bDescriptorType 36 > bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED) > bFormatIndex 1 > bNumFrameDescriptors 1 > guidFormat > {e436eb7b-524f-11ce-9f53-0020af0ba770} > bBitsPerPixel 16 > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 2 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > ---snip--- > > This corresponds to D3DFMT_R5G6B5 or MEDIASUBTYPE_RGB565, based on the > reference here: https://gix.github.io/media-types/#ID0EC2AI However, > the UVC driver is expecting RGB565 to be using the 4cc RGBP GUID > 52474250-0000-1000-8000-00aa00389b71. This is very nearly the same as > the alternative GUID described on the document above, > 00000017-0000-0010-8000-00AA00389B71, which uses an index rather than > a 4cc. > > I haven't been able to find any references as to what GUIDs are > supported for guidFormat. The uvc spec only defines GUIDs for YUY2, NV12, M420 and I420. It would have been nice that the vendor had used the same GUID as TomTom (Check 507910799160e85eac5e7729e0d2f1ba26f6a8cf) but apparently it is not required to be like this. Why dont you try adding a new mapping to include/linux/usb/uvc.h and drivers/media/common/uvc.c ? Similar to what Marek did here: 015d44c2b700ba9639dd29672ba362796cc0be54 I believe that if a camera does not use TomToms GUID and the new GUI, everything would work... Regards > > (a) Is the camera wrong? > (b) Is the kernel wrong? > (c) Am I looking at the wrong document? > > The easy fix is to patch the uvcvideo driver to support the e436... > GUID, but that doesn't seem a great idea. Any suggestions? > -- Ricardo Ribalda