Re: [PATCH] usb: gadget: g_webcam: Send color matching descriptor per frame

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan,

Thank you for the patch.

On Fri, Dec 16, 2022 at 04:05:28PM +0000, Daniel Scally wrote:
> Currently the color matching descriptor is only sent across the wire
> a single time, following the descriptors for each format and frame.
> According to the UVC 1.5 Specification 3.9.2.6 ("Color Matching
> Descriptors"):
> 
> "Only one instance is allowed for a given format and if present,
> the Color Matching descriptor shall be placed following the Video
> and Still Image Frame descriptors for that format".
> 
> Add another reference to the color matching descriptor after the
> yuyv frames so that it's correctly transmitted for that format
> too.
> 
> Fixes: a9914127e834 ("USB gadget: Webcam device")
> Signed-off-by: Daniel Scally <dan.scally@xxxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>  drivers/usb/gadget/legacy/webcam.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/gadget/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c
> index 53e38f87472b..c06dd1af7a0c 100644
> --- a/drivers/usb/gadget/legacy/webcam.c
> +++ b/drivers/usb/gadget/legacy/webcam.c
> @@ -293,6 +293,7 @@ static const struct uvc_descriptor_header * const uvc_fs_streaming_cls[] = {
>  	(const struct uvc_descriptor_header *) &uvc_format_yuv,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_720p,
> +	(const struct uvc_descriptor_header *) &uvc_color_matching,
>  	(const struct uvc_descriptor_header *) &uvc_format_mjpg,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_720p,
> @@ -305,6 +306,7 @@ static const struct uvc_descriptor_header * const uvc_hs_streaming_cls[] = {
>  	(const struct uvc_descriptor_header *) &uvc_format_yuv,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_720p,
> +	(const struct uvc_descriptor_header *) &uvc_color_matching,
>  	(const struct uvc_descriptor_header *) &uvc_format_mjpg,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_720p,
> @@ -317,6 +319,7 @@ static const struct uvc_descriptor_header * const uvc_ss_streaming_cls[] = {
>  	(const struct uvc_descriptor_header *) &uvc_format_yuv,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_yuv_720p,
> +	(const struct uvc_descriptor_header *) &uvc_color_matching,
>  	(const struct uvc_descriptor_header *) &uvc_format_mjpg,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_360p,
>  	(const struct uvc_descriptor_header *) &uvc_frame_mjpg_720p,

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux