Adobe Flash with blue tint on Youtube videos
Thursday, December 27th 2012 in
After having just updated two of my desktops at home from PC-BSD 9.0 to 9.1, I noticed that Youtube videos began appearing with a blue tint. This is pretty annoying.
It turns out that it is a problem with the Adobe Flash plugin for Linux, which FreeBSD/PC-BSD uses. Namely, the way it uses the library
vdpau to do hardware acceleration.
The easiest fix is to disable hardware acceleration. You can do this by right-clicking a Youtube video, selecting “Settings”, and un-checking “Enable Hardware Acceleration.” This will cause your processor to do the video decoding work that would ideally be done by the GPU, however. If you can handle the increased CPU usage caused by this, then you should be good to go.
vdpau code has been patched to change the behavior of a certain function if it is accessed by the Flash plugin. Namely, it swaps the color arguments. This fix has been implemented to this since 18 Sep 2012.
You will need to rebuild this port:
# cd /usr/ports/multimedia/libvdpau
# make deinstall
# make install clean
You may need to restart your browser after this takes affect.
At least for FreeBSD/PC-BSD, I have not been able to get the above to work. Perhaps it somehow only works in Linux.
Anyways, another way to get rid of the blue is to find the location of
libflashplayer.so, and modify it as follows:
# perl -pi.bak -e 's/libvdpau/lixvdpau/g' libflashplayer.so
Basically, what this does is replace all references of
libvdpau with bogus names, so that Flash cannot use this library anymore (which means it cannot use the function arguments incorrectly!).
I am not sure if this disables actual hardware acceleration or not. I believe that it might, as playing a full-screen Flash video on Youtube maxed out one of the cores on my computer. However, since I have four cores, this isn’t a big deal (except the fan noise!).