Re: [PATCH] usbvision: remove (broken) image format conversion

From: Ondrej Zary
Date: Tue Apr 26 2011 - 04:30:36 EST


On Tuesday 26 April 2011, you wrote:
> On Monday, April 25, 2011 23:23:17 Ondrej Zary wrote:
> > The YVU420 and YUV422P formats are broken and cause kernel panic on use.
> > (YVU420 does not work and sometimes causes "unable to handle paging
> > request" panic, YUV422P always causes "NULL pointer dereference").
> >
> > As V4L2 spec says that drivers shouldn't do any in-kernel image format
> > conversion, remove it completely (except YUYV).
>
> What really should happen is that the conversion is moved to libv4lconvert.
> I've never had the time to tackle that, but it would improve this driver a
> lot.

Depending on isoc_mode module parameter, the device uses different image
formats: YUV 4:2:2 interleaved, YUV 4:2:0 planar or compressed format.

Maybe the parameter should go away and these three formats exposed to
userspace? Hopefully the non-compressed formats could be used directly
without any conversion. But the compressed format (with new V4L2_PIX_FMT_
assigned?) should be preferred (as it provides much higher frame rates). The
code moved into libv4lconvert would decompress the format and convert into
something standard (YUV420?).

> Would you perhaps be interested in doing that work?

I can try it. But the hardware isn't mine so my time is limited.

> > The removal also reveals an off-by-one bug in enum_fmt ioctl - it misses
> > the last format, so this patch fixes it too.
>
> Good. But why are the GREY/RGB formats also removed? Are those broken as
> well?

GREY, RGB24 and RGB32 seem to work (at least with mplayer). RGB565 and RGB555
have wrong colors. GREY is implemented only in compressed mode but can be
selected in other modes too. Can't userspace do the conversion better?

> Regards,
>
> Hans

--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/