2022-04-21 11:13:33

by Ricardo Ribalda

[permalink] [raw]
Subject: Re: [PATCH v3] media: usb: uvc: Add UVC_GUID_FORMAT_H265

On Tue, 19 Apr 2022 at 14:17, Laurent Pinchart
<[email protected]> wrote:
>
> Hello,
>
> On Tue, Apr 19, 2022 at 01:46:15PM +0200, Ricardo Ribalda wrote:
> > On Mon, 18 Apr 2022 at 11:07, James_Lin <[email protected]> wrote:
> > >
> > > 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 <[email protected]>
> >
> > Reviewed-by: Ricardo Ribalda <[email protected]>
> > > ---
> > > drivers/media/usb/uvc/uvc_driver.c | 5 +++++
> > > drivers/media/usb/uvc/uvcvideo.h | 3 +++
> > > 2 files changed, 8 insertions(+)
> > >
> > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> > > index dda0f0aa78b8..e437e9f95890 100644
> > > --- a/drivers/media/usb/uvc/uvc_driver.c
> > > +++ b/drivers/media/usb/uvc/uvc_driver.c
> > > @@ -154,6 +154,11 @@ static struct uvc_format_desc uvc_fmts[] = {
> > > .guid = UVC_GUID_FORMAT_H264,
> > > .fcc = V4L2_PIX_FMT_H264,
> > > },
> >
> > Maybe I would add a comment here saying that some cameras represent
> > hevc as h265.
>
> I wish there would be a 4CC and GUID standard with a centralized
> registry...

Thought that was the kernel codebase :)

>
> Reviewed-by: Laurent Pinchart <[email protected]>
>
> > > + {
> > > + .name = "H.265",
> > > + .guid = UVC_GUID_FORMAT_H265,
> > > + .fcc = V4L2_PIX_FMT_HEVC,
> > > + },
> > > {
> > > .name = "Greyscale 8 L/R (Y8I)",
> > > .guid = UVC_GUID_FORMAT_Y8I,
> > > diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
> > > index 143230b3275b..41f4d8c33f2a 100644
> > > --- a/drivers/media/usb/uvc/uvcvideo.h
> > > +++ b/drivers/media/usb/uvc/uvcvideo.h
> > > @@ -139,6 +139,9 @@
> > > #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}
>
> --
> Regards,
>
> Laurent Pinchart



--
Ricardo Ribalda


2022-04-22 09:00:58

by Nicolas Dufresne

[permalink] [raw]
Subject: Re: [PATCH v3] media: usb: uvc: Add UVC_GUID_FORMAT_H265

Le mardi 19 avril 2022 à 14:18 +0200, Ricardo Ribalda a écrit :
> On Tue, 19 Apr 2022 at 14:17, Laurent Pinchart
> <[email protected]> wrote:
> >
> > Hello,
> >
> > On Tue, Apr 19, 2022 at 01:46:15PM +0200, Ricardo Ribalda wrote:
> > > On Mon, 18 Apr 2022 at 11:07, James_Lin <[email protected]> wrote:
> > > >
> > > > 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 <[email protected]>
> > >
> > > Reviewed-by: Ricardo Ribalda <[email protected]>
> > > > ---
> > > > drivers/media/usb/uvc/uvc_driver.c | 5 +++++
> > > > drivers/media/usb/uvc/uvcvideo.h | 3 +++
> > > > 2 files changed, 8 insertions(+)
> > > >
> > > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> > > > index dda0f0aa78b8..e437e9f95890 100644
> > > > --- a/drivers/media/usb/uvc/uvc_driver.c
> > > > +++ b/drivers/media/usb/uvc/uvc_driver.c
> > > > @@ -154,6 +154,11 @@ static struct uvc_format_desc uvc_fmts[] = {
> > > > .guid = UVC_GUID_FORMAT_H264,
> > > > .fcc = V4L2_PIX_FMT_H264,
> > > > },
> > >
> > > Maybe I would add a comment here saying that some cameras represent
> > > hevc as h265.
> >
> > I wish there would be a 4CC and GUID standard with a centralized
> > registry...
>
> Thought that was the kernel codebase :)

You'll find multiple fourcc for the same thing in the linux kernel ;-P

>
> >
> > Reviewed-by: Laurent Pinchart <[email protected]>
> >
> > > > + {
> > > > + .name = "H.265",
> > > > + .guid = UVC_GUID_FORMAT_H265,
> > > > + .fcc = V4L2_PIX_FMT_HEVC,
> > > > + },
> > > > {
> > > > .name = "Greyscale 8 L/R (Y8I)",
> > > > .guid = UVC_GUID_FORMAT_Y8I,
> > > > diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
> > > > index 143230b3275b..41f4d8c33f2a 100644
> > > > --- a/drivers/media/usb/uvc/uvcvideo.h
> > > > +++ b/drivers/media/usb/uvc/uvcvideo.h
> > > > @@ -139,6 +139,9 @@
> > > > #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}
> >
> > --
> > Regards,
> >
> > Laurent Pinchart
>
>
>