Problem with camera’s up-side-down view on Linux

This problem is known for everyone who has ASUS or Acer notebook and uses its webcam.

Provided default library to use camera gives us up-side-down view.

I wrote a post how to permanently fix this bug on Skype, but the fix doesn’t work for all applications. You can still meet this bug in Firefox, Chromium and any other application which can use your web-cam.

The solution depends on your platform, if it’s 64 bits or 32 bits and target’s architecture of the application you want to use. As you can see, Skype is available only in 32 bits, so you have to use a 32 bits library:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

But Firefox and Chromium are available for 64 bits architecture, so in this case you must have a 64 bits library:

LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so

this is only an alias which defines LD_PRELOAD as a path to v4l1compat.so. Now, if you want to use this library as camera’s view operator run the following command:

LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so firefox

 

How do I know which one I need?

If you run Firefox/Chromium or anything else with a 32 bits library you will get this error:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so firefox
ERROR: ld.so: object ‘/usr/lib/libv4l/v4l1compat.so’ from LD_PRELOAD cannot be preloaded: ignored.

If you see this, the fix doesn’t work and you must use the 64 bits version. The command is above.

 

I can’t locate this file!

If you cannot find the 64 bits version of this library, run these commands from root:

$ updatedb #update database of all files on your drive
$ locate v4l1compat #locates a file
/usr/lib/libv4l/v4l1compat.so
/usr/lib64/libv4l/v4l1compat.so

As you can see, I got both versions of libv4l, 64 and 32 bits located. The 64 bits version will have the number 64 in the path.

If you still can’t find them… have you installed them?

sudo zypper ref #SUSE
sudo zypper in libv4l1-0-32bit libv4l-32bit libv4l
 
sudo apt-get update #Ubuntu, Mint, Debian
sudo apt-get install libv4l1-0-32bit libv4l-32bit libv4l
[Total: 0    Average: 0/5]