* [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT
@ 2009-03-25 6:59 Németh Márton
2009-03-25 7:12 ` Hans Verkuil
2009-03-27 14:15 ` Laurent Pinchart
0 siblings, 2 replies; 3+ messages in thread
From: Németh Márton @ 2009-03-25 6:59 UTC (permalink / raw)
To: Laurent Pinchart, linux-media; +Cc: LKML
From: Márton Németh <nm127@freemail.hu>
When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does not
fill the reserved fields of the struct v4l2_fmtdesc with zeros as required by
V4L2 API revision 0.24 [1]. Add the missing initializations.
The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on EeePC
901.
References:
[1] V4L2 API specification, revision 0.24
http://v4l2spec.bytesex.org/spec/r8367.htm
[2] v4l-test: Test environment for Video For Linux Two API
http://v4l-test.sourceforge.net/
Signed-off-by: Márton Németh <nm127@freemail.hu>
---
--- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24 00:12:14.000000000 +0100
+++ linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25 07:24:42.000000000 +0100
@@ -673,11 +673,19 @@ static long uvc_v4l2_do_ioctl(struct fil
{
struct v4l2_fmtdesc *fmt = arg;
struct uvc_format *format;
+ __u32 index;
+ enum v4l2_buf_type type;
if (fmt->type != video->streaming->type ||
fmt->index >= video->streaming->nformats)
return -EINVAL;
+ index = fmt->index;
+ type = fmt->type;
+ memset(fmt, 0, sizeof(*fmt));
+ fmt->index = index;
+ fmt->type = type;
+
format = &video->streaming->format[fmt->index];
fmt->flags = 0;
if (format->flags & UVC_FMT_FLAG_COMPRESSED)
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT
2009-03-25 6:59 [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT Németh Márton
@ 2009-03-25 7:12 ` Hans Verkuil
2009-03-27 14:15 ` Laurent Pinchart
1 sibling, 0 replies; 3+ messages in thread
From: Hans Verkuil @ 2009-03-25 7:12 UTC (permalink / raw)
To: Németh Márton; +Cc: Laurent Pinchart, linux-media, LKML
On Wednesday 25 March 2009 07:59:30 Németh Márton wrote:
> From: Márton Németh <nm127@freemail.hu>
>
> When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does
> not fill the reserved fields of the struct v4l2_fmtdesc with zeros as
> required by V4L2 API revision 0.24 [1]. Add the missing initializations.
>
> The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on
> EeePC 901.
Or even better, Laurent, why not move to video_ioctl2? That will take care
of such things for you. The next step I'm going to take in the
implementation of the v4l2 framework is to move all drivers over to
v4l2_device and v4l2_ioctl2, so it would certainly help me if you could
convert uvcvideo. This is a typical example why using video_ioctl2 is a
good (tm) idea!
Regards,
Hans
>
> References:
> [1] V4L2 API specification, revision 0.24
> http://v4l2spec.bytesex.org/spec/r8367.htm
>
> [2] v4l-test: Test environment for Video For Linux Two API
> http://v4l-test.sourceforge.net/
>
> Signed-off-by: Márton Németh <nm127@freemail.hu>
> ---
> --- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24
> 00:12:14.000000000 +0100 +++
> linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25
> 07:24:42.000000000 +0100 @@ -673,11 +673,19 @@ static long
> uvc_v4l2_do_ioctl(struct fil
> {
> struct v4l2_fmtdesc *fmt = arg;
> struct uvc_format *format;
> + __u32 index;
> + enum v4l2_buf_type type;
>
> if (fmt->type != video->streaming->type ||
> fmt->index >= video->streaming->nformats)
> return -EINVAL;
>
> + index = fmt->index;
> + type = fmt->type;
> + memset(fmt, 0, sizeof(*fmt));
> + fmt->index = index;
> + fmt->type = type;
> +
> format = &video->streaming->format[fmt->index];
> fmt->flags = 0;
> if (format->flags & UVC_FMT_FLAG_COMPRESSED)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT
2009-03-25 6:59 [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT Németh Márton
2009-03-25 7:12 ` Hans Verkuil
@ 2009-03-27 14:15 ` Laurent Pinchart
1 sibling, 0 replies; 3+ messages in thread
From: Laurent Pinchart @ 2009-03-27 14:15 UTC (permalink / raw)
To: Németh Márton; +Cc: linux-media, LKML
On Wednesday 25 March 2009 07:59:30 Németh Márton wrote:
> From: Márton Németh <nm127@freemail.hu>
>
> When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does not
> fill the reserved fields of the struct v4l2_fmtdesc with zeros as required
> by V4L2 API revision 0.24 [1]. Add the missing initializations.
>
> The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on
> EeePC 901.
>
> References:
> [1] V4L2 API specification, revision 0.24
> http://v4l2spec.bytesex.org/spec/r8367.htm
>
> [2] v4l-test: Test environment for Video For Linux Two API
> http://v4l-test.sourceforge.net/
>
> Signed-off-by: Márton Németh <nm127@freemail.hu>
Applied, thanks.
> ---
> --- linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c.orig 2009-03-24
> 00:12:14.000000000 +0100 +++
> linux-2.6.29/drivers/media/video/uvc/uvc_v4l2.c 2009-03-25
> 07:24:42.000000000 +0100 @@ -673,11 +673,19 @@ static long
> uvc_v4l2_do_ioctl(struct fil
> {
> struct v4l2_fmtdesc *fmt = arg;
> struct uvc_format *format;
> + __u32 index;
> + enum v4l2_buf_type type;
>
> if (fmt->type != video->streaming->type ||
> fmt->index >= video->streaming->nformats)
> return -EINVAL;
>
> + index = fmt->index;
> + type = fmt->type;
> + memset(fmt, 0, sizeof(*fmt));
> + fmt->index = index;
> + fmt->type = type;
> +
> format = &video->streaming->format[fmt->index];
> fmt->flags = 0;
> if (format->flags & UVC_FMT_FLAG_COMPRESSED)
Laurent Pinchart
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-03-27 14:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-25 6:59 [PATCH] uvcvideo: add zero fill for VIDIOC_ENUM_FMT Németh Márton
2009-03-25 7:12 ` Hans Verkuil
2009-03-27 14:15 ` Laurent Pinchart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox