HI Stephan,

Thanks for the patch, and sorry for the late reply.

On Friday 28 January 2011 20:38:58 Stephan Lachowsky wrote:
> Associate the H.264 GUID with an H.264 pixel format so that frame
> and stream based format descriptors with this GUID are recognized
> by the UVC video driver.
> ---
>  drivers/media/video/uvc/uvc_driver.c |    5 +++++
>  drivers/media/video/uvc/uvcvideo.h   |    3 +++
>  include/linux/videodev2.h            |    1 +
>  3 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/media/video/uvc/uvc_driver.c
> b/drivers/media/video/uvc/uvc_driver.c index 6bcb9e1..a5a86ce 100644
> --- a/drivers/media/video/uvc/uvc_driver.c
> +++ b/drivers/media/video/uvc/uvc_driver.c
> @@ -108,6 +108,11 @@ static struct uvc_format_desc uvc_fmts[] = {
>               .guid           = UVC_GUID_FORMAT_MPEG,
>               .fcc            = V4L2_PIX_FMT_MPEG,
>       },
> +     {
> +             .name           = "H.264",
> +             .guid           = UVC_GUID_FORMAT_H264,
> +             .fcc            = V4L2_PIX_FMT_H264,
> +     },
>  };
> 
>  /*
> ------------------------------------------------------------------------
> diff --git a/drivers/media/video/uvc/uvcvideo.h
> b/drivers/media/video/uvc/uvcvideo.h index e522f99..4f65ac6 100644
> --- a/drivers/media/video/uvc/uvcvideo.h
> +++ b/drivers/media/video/uvc/uvcvideo.h
> @@ -155,6 +155,9 @@ struct uvc_xu_control {
>  #define UVC_GUID_FORMAT_MPEG \
>       { 'M',  'P',  'E',  'G', 0x00, 0x00, 0x10, 0x00, \
>        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
> +#define UVC_GUID_FORMAT_H264 \
> +     { 'H',  '2',  '6',  '4', 0x00, 0x00, 0x10, 0x00, \
> +      0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
> 
>  /*
> ------------------------------------------------------------------------ *
> Driver specific constants.
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index 5f6f470..d3b5877 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -341,6 +341,7 @@ struct v4l2_pix_format {
>  #define V4L2_PIX_FMT_JPEG     v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG
>     */ #define V4L2_PIX_FMT_DV       v4l2_fourcc('d', 'v', 's', 'd') /*
> 1394          */ #define V4L2_PIX_FMT_MPEG     v4l2_fourcc('M', 'P', 'E',
> 'G') /* MPEG-1/2/4    */ +#define V4L2_PIX_FMT_H264     v4l2_fourcc('H',
> '2', '6', '4') /* H.264 Annex-B NAL Units */

I've discussed H.264 support with Hans Verkuil (CC'ed) some time ago, and his 
opinion was that we shouldn't use a new V4L2 format for it. H.264 is 
essentially an MPEG version, so drivers should use V4L2_PIX_FMT_MPEG and 
select the details using the MPEG CIDs.

Of course feel free to disagree with Hans and discuss the matter with him :-)

>  /*  Vendor-specific formats   */
>  #define V4L2_PIX_FMT_CPIA1    v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV
> */

-- 
Regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to