UVC webcam upside down image

I have a laptop with a buld-in webcam. This would normally be all well and good, but the damn thing has a problem with the picture being upside down…

If you have the same problem, here is the solution:

  1. Download the new uvcvideo from here and extract it.
  2. Extract the file (tar xjvf uvcvideo.tar.bz2)
  3. Get one of the patches: 1_mirrored, 1_notMirrored, 2_mirrored, 2_notMirrored (courtesy of arjos85)
  4. Save the patch in the folder ~/linux/drivers/media/video/uvc/uvc_video.c (~ is the path to the just downloaded and extracted driver)
  5. Then run: patch -p0 < [your_patch]
  6. Now build the module: make && make install
  7. load it with: modprobe uvcvideo

Now everything should be working correctly. Try it with Skype or Cheese!

Let me know if there were any problems…

Fix the upside down on uvc webcams

Hi everybody,
it’s a very quick how-to that will help you to solve the problem of those webcams who give back upside-down images/videos!!!
This help is intended only for those who have a UVC capable webcam.
But it will be usefull only if your webcam supports YUV image format and the applications that use your webcam request YUV format to your webcam!!! I’ve tested it and it works with:
skype, amsn, kopete, luvcview, mplayer!!

So…let’s start!!!!

In order to know if your webcam is UVC capable you just need to open your shell and run:

Code:
lsusb


you will get something like this:

Quote:
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID xxxx:yyyy “Your_Webcam_Model”
Bus 001 Device 001: ID 0000:0000

Then type:

Code:
sudo lsusb -d xxxx:yyyy -v | grep "14 Video"


If you get something like the following, your webcam is UVC capable:

Quote:
bFunctionClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video


If your webcam passes this test, you can go on reading. Otherwise, your camera needs to use propertary driver, because it doesn’t use standard protocol/command.

Well,
now you need to donwload the UVCVIDEO driver sources, but they are on a SVN repository, so you need to install the SVN client:

Code:
sudo apt-get install subversion

and now you can download the sources:

Code:
svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk


The sources will be saved into a folder called “Trunk” in the path from where you run the previous command.

Next, you need to use a patch to update your clean uvcvideo driver. Please download this.

Then proceed..

Code:
patch < patch_solution1_mirrored.patch

Well, now the worst part has been done!!!
We just need to compile our modded file and to install the new driver, so from shell you have to go to the "Trunk" directory and type:

Code:
make

there shouldn't be errors!!

Then, ONLY if you are using one of the Ubuntu distributions (ubuntu, kubuntu, etc.), open with you editor the "Makefile" and change the following line:

Code:
INSTALL_MOD_DIR := usb/media

with

Code:
INSTALL_MOD_DIR := ubuntu/media/usbvideo

Now we just need to remove uvcvideo module (if you have previously installed it):

Code:
sudo modprobe -r uvcvideo

Then:

Code:
sudo make install
sudo modprobe uvcvideo

Now everything should work!!!

Let me know!!