On Wed, Dec 17, 2008 at 10:51 PM, Laurent Pinchart
<[email protected]> wrote:
> Hi Khashayar,
>
> On Sunday 14 December 2008, Khashayar Naderehvandi wrote:
>> Hi all,
>>
>> I'm one of those unlucky people who has the notorious problem of an
>> upside-down mounted web camera in my notebook. The uvcvideo module
>> itself works perfectly well with this webcam, which is a Suyin
>> (064e:a116).
>>
>> I came across these patches [1] posted on the Ubuntu forums that
>> allows the uvcvideo module to flip the image. I was wondering if there
>> are any plans to incorporate those patches in uvc to accomplish
>> something similar to the syntek driver's hflip & vflip options?
>
> A little background first. Most UVC cameras are made of a video sensor and a
> USB bridge. Sensors can usually be read in any direction, offering horizontal
> and vertical flip options. Unfortunately, firmware developers often forget to
> expose those functions through the UVC interface, making hardware horizontal
> and vertical flipping impossible.
>
> When a camera mounted upside-down doesn't offer any hardware flip control, the
> image must be rotated by software. Image processing isn't allowed in the
> Linux kernel (or at least hardly discouraged), so I'm not keen on
> implementing software-based image rotation in the UVC driver. I could be
> convinced otherwise if the proposed implementation didn't impact
> performances. This is in theory be possible, as the UVC driver copies data
> from USB buffers to V4L buffers. 'Backward' copy could be implemented without
> hurting the source code readability and performances (please not this isn't
> possible for compressed formats).
>
> However, an alternative now exists through libv4l. The library supports
> software-based image rotation in userspace. If your application is linked to
> libv4l the HFLIP and VFLIP controls should be available (I haven't tried it
> myself so this might require some tweaking). It might be possible to achieve
> the same result for applications not designed for libv4l by preloading the
> library.
>
> In your and David's case, the webcam supports direct access to the I2C bus
> from the host driver, making it possible (at least in theory) to enable image
> rotation on the sensor from the driver. This would require access to the
> datasheet of the video sensor used in the camera. I can assist you with
> driver hacking if you want to experiment with that.
>
>
Thank you so much for this very helpful background information. I
think I understand a bit more of these things now. Unfortunately, I
have no programming skills, and as tempting as driver hacking does
sound, I'm afraid I'm completely at a loss there. Coding is on my
to-learn-list, though, and if I ever manage to learn anything usefull,
I'll be sure to start hacking on uvcvideo. In the meanwhile, I'll be
ready to help out in any other way I can.

> Best regards,
>
> Laurent Pinchart
>
All the best,
Khashayar
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to