Re: [RFC PATCH] uvcvideo: Add mapping for HEVC payloads

From: Laurent Pinchart
Date: Sat Jun 06 2020 - 21:07:42 EST


Hi Dmitry,

Thank you for the patch.

On Fri, May 29, 2020 at 11:05:47AM +1000, Dmitry Buzdyk wrote:
> Add HEVC GUID and assotiate with HEVC pixel format so that frame
> based format descriptors recognized by the UVC video driver.

The patch itself looks OK to me, but could you share a bit more
information about which device(s) implement this ? Are they UVC 1.1
devices ? Could you share their full USB descriptors (retrieved with
'lsusb -v', running as root if possible) ?

Is there anything else needed to get HEVC capture working, such as
extension unit controls, or is this patch enough ? What userspace
software do you use to capture and decode HEVC (or capture it to disk) ?

> Signed-off-by: Dmitry Buzdyk <dima.buzdyk@xxxxxxxxx>
> ---
> drivers/media/usb/uvc/uvc_driver.c | 5 +++++
> drivers/media/usb/uvc/uvcvideo.h | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index 431d86e1c94b..825ee3601661 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -214,6 +214,11 @@ static struct uvc_format_desc uvc_fmts[] = {
> .guid = UVC_GUID_FORMAT_CNF4,
> .fcc = V4L2_PIX_FMT_CNF4,
> },
> + {
> + .name = "HEVC",
> + .guid = UVC_GUID_FORMAT_HEVC,
> + .fcc = V4L2_PIX_FMT_HEVC,
> + },
> };
>
> /* ------------------------------------------------------------------------
> diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
> index 6ab972c643e3..c7f043121b41 100644
> --- a/drivers/media/usb/uvc/uvcvideo.h
> +++ b/drivers/media/usb/uvc/uvcvideo.h
> @@ -165,6 +165,10 @@
> {0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
> 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
>
> +#define UVC_GUID_FORMAT_HEVC \
> + { 'H', 'E', 'V', 'C', 0x00, 0x00, 0x10, 0x00, \
> + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
> +
>
> /* ------------------------------------------------------------------------
> * Driver specific constants.

--
Regards,

Laurent Pinchart