]> git.baikalelectronics.ru Git - kernel.git/commitdiff
media: uvcvideo: Add UVC_GUID_FORMAT_H265
authorJames_Lin <Ping-lei.Lin@mediatek.com>
Mon, 18 Apr 2022 09:06:52 +0000 (11:06 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 8 May 2022 05:10:51 +0000 (07:10 +0200)
This patch aims to add UVC_GUID_FORMAT_H265
High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2.
They describe the same video encoding method.
So for handling their behavior is the same.
However, when external camera device describes this encoding method,
some use hevc, some use h265.
There is no uniform specification to describe this encoding method.
So if an external camera device use h265 to describe this encoding method,
driver will not recognize it.
Therefore, this patch is to enable driver to read HEVC/H265
and convert it to V4L2_PIX_FMT_HEVC.

Signed-off-by: James_Lin <Ping-lei.Lin@mediatek.com>
Reviewed-by: Ricardo Ribalda <ribalda@chromium.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/usb/uvc/uvc_driver.c
drivers/media/usb/uvc/uvcvideo.h

index c780394059e726f69c0c6545601acde3ec70a519..6c86faecbea21e76c7ebc2e93e254fd1e3a5ff71 100644 (file)
@@ -154,6 +154,11 @@ static struct uvc_format_desc uvc_fmts[] = {
                .guid           = UVC_GUID_FORMAT_H264,
                .fcc            = V4L2_PIX_FMT_H264,
        },
+       {
+               .name           = "H.265",
+               .guid           = UVC_GUID_FORMAT_H265,
+               .fcc            = V4L2_PIX_FMT_HEVC,
+       },
        {
                .name           = "Greyscale 8 L/R (Y8I)",
                .guid           = UVC_GUID_FORMAT_Y8I,
index 28eb337a6cfbfbd809a54aa96f04badca97b61d9..c5b4febd2d94b6d2b1933c4e761cd7c5be93f756 100644 (file)
 #define UVC_GUID_FORMAT_H264 \
        { 'H',  '2',  '6',  '4', 0x00, 0x00, 0x10, 0x00, \
         0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_H265 \
+       { 'H',  '2',  '6',  '5', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 #define UVC_GUID_FORMAT_Y8I \
        { 'Y',  '8',  'I',  ' ', 0x00, 0x00, 0x10, 0x00, \
         0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}