Hi Michael, On Sun, Jan 22, 2023 at 01:28:15PM +0100, Michael Grzeschik wrote: > On Mon, Jan 16, 2023 at 04:22:29PM +0200, Laurent Pinchart wrote: > > On Mon, Jan 16, 2023 at 02:20:40PM +0100, Ricardo Ribalda wrote: > >> Hi Marek!!! > >> > >> Why do they call MEDIASUBTYPE_RGB32 something that is BRG ? ! > >> > >> Why do WE call XBGR something that is BGRX? !! > >> > >> Besides our insanity, your patch looks sane. Thanks for it :) > >> > >> There are some patches on the queue to remove the format definitions, > >> so your patch might not apply cleanly, I guess Laurent will take care > >> of it > > > > Ricardo meant [5]. > > > > Michael, I'm waiting for Mauro to merge the uvcvideo pull request for > > v6.3 ([6]). Once done, you can use that as a base branch for your > > series, and send a pull request to Greg. Could you include Marek's > > patch, either at the bottom or the top of your series ? Alternatively I > > can send a v4 of the uvcvideo pull request with this patch included if > > you prefer. > > > > [5] https://lore.kernel.org/linux-media/20221215224514.2344656-1-m.grzeschik@xxxxxxxxxxxxxx/ > > [6] https://lore.kernel.org/linux-media/Y8R0yfSL+1BNi%2Ff3@xxxxxxxxxxxxxxxxxxxxxxxxxx/ > > I sure will pick up this patch and create a pull request for my series. Mauro has merged the media-uvc-next-20230115 tag from git://git.kernel.org/pub/scm/linux/kernel/git/pinchartl/linux.git, you can now use it as a base. > >> On Mon, 16 Jan 2023 at 11:50, Laurent Pinchart wrote: > >> > On Mon, Jan 16, 2023 at 10:40:32AM +0100, Marek Vasut wrote: > >> > > The Cypress EZUSB FX3 UVC example can be configured to report pixel > >> > > format "e436eb7e-524f-11ce-9f53-0020af0ba770". This is its GUID for > >> > > BGRA/X 8:8:8:8. > >> > > > >> > > The UVC 1.5 spec [1] only defines GUIDs for YUY2, NV12, M420 and I420. > >> > > This seems to be an extension documented in the Microsoft Windows Media > >> > > Format SDK[2]. This Media Format SDK defines this GUID as corresponding > >> > > to `MEDIASUBTYPE_RGB32`, which is confirmed by [4] as `MEDIASUBTYPE_ARGB32` > >> > > has different GUID. > >> > > > >> > > Note that in my case, the FX3 UVC can output either channel order, > >> > > BGR or RGB or any other mix for that matter. Since Linux commit > >> > > 1b8dc32286a1a ("[media] uvcvideo: Add GUID for BGR 8:8:8") > >> > > defined a GUID for `MEDIASUBTYPE_RGB24` channel order as BGR, keep > >> > > this change consistent and define `MEDIASUBTYPE_RGB32` as BGR as well. > >> > > Document [3] also indicates the channel order is BGR. > >> > > > >> > > [1] https://www.usb.org/document-library/video-class-v15-document-set > >> > > [2] https://learn.microsoft.com/en-us/windows/win32/wmformat/media-type-identifiers > >> > > [3] https://learn.microsoft.com/en-us/windows/win32/directshow/uncompressed-rgb-video-subtypes > >> > > [4] https://gix.github.io/media-types/ > >> > > > >> > > Signed-off-by: Marek Vasut <marex@xxxxxxx> > >> > > >> > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > >> > >> Reviewed-by: Ricardo Ribalda <ricardo@xxxxxxxxxxx> > >> > >> > > --- > >> > > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > >> > > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > >> > > Cc: William Manley <will@xxxxxxxxxxxxxxxxx> > >> > > --- > >> > > V2: - Reference document [3] confirming BGR channel order > >> > > - Reference document [4] describing MEDIASUBTYPE_ARGB32 with different GUID > >> > > - Use V4L2_PIX_FMT_XBGR32 instead of V4L2_PIX_FMT_BGR32 which is deprecated > >> > > --- > >> > > include/media/v4l2-uvc.h | 8 ++++++++ > >> > > 1 file changed, 8 insertions(+) > >> > > > >> > > diff --git a/include/media/v4l2-uvc.h b/include/media/v4l2-uvc.h > >> > > index f83e31661333b..b010a36fc1d95 100644 > >> > > --- a/include/media/v4l2-uvc.h > >> > > +++ b/include/media/v4l2-uvc.h > >> > > @@ -99,6 +99,9 @@ > >> > > #define UVC_GUID_FORMAT_BGR3 \ > >> > > { 0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \ > >> > > 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70} > >> > > +#define UVC_GUID_FORMAT_BGR4 \ > >> > > + { 0x7e, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \ > >> > > + 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70} > >> > > #define UVC_GUID_FORMAT_M420 \ > >> > > { 'M', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \ > >> > > 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} > >> > > @@ -266,6 +269,11 @@ static struct uvc_format_desc uvc_fmts[] = { > >> > > .guid = UVC_GUID_FORMAT_BGR3, > >> > > .fcc = V4L2_PIX_FMT_BGR24, > >> > > }, > >> > > + { > >> > > + .name = "BGRA/X 8:8:8:8 (BGR4)", > >> > > + .guid = UVC_GUID_FORMAT_BGR4, > >> > > + .fcc = V4L2_PIX_FMT_XBGR32, > >> > > + }, > >> > > { > >> > > .name = "H.264", > >> > > .guid = UVC_GUID_FORMAT_H264, -- Regards, Laurent Pinchart