Friday, June 15

Fix for 'Blue Faces in Flash Video' Bug Lands in Ubuntu 12.10


Few months back, final version of Flash player for Linux was released by Adobe. Along with it arrived one of the most annoying bugs that affected Nvidia binary driver users.

Flash videos on Youtube and some other websites appeared with a blue tint. A bug for this issue was filed on launchpad and more than 400 users have marked it as 'me too'.

A number of bug reports regarding this issue were filed in Adobe bug tracker as well but all of them were rejected. So, Flash 11.2 being last release for Linux, there won't be a fix from Adobe's side. A security update for 11.2 was released recently and it did not include fix for this bug.

With Adobe refusing to provide a fix, users had to resort to workarounds that did not work always.

The Bug

Flash Player since version 11.2 uses hardware video acceleration on most platforms. Unfortunately the acceleration in Linux is not properly supported. Flash Player swaps colours in video under the following conditions:
  • You are using fairly new Nvidia GPU with VDPAU support.
  • You are using current version of Nvidia binary driver (older versions don't support VDPAU).
  • You have libvdpau1 package installed.
  • The player on the site uses Stage Video – that's why only YouTube and few other players are affected.
This is not a bug in libvdpau neither it is specific to any desktop environment or a distribution. This is not a bug in Nvidia as well, according to Pierre-Loup Griffais from Nvidia:

The problem only happens when Flash uses software decoding but VDPAU for presentation; it swaps two arguments of the call to upload the video data into VDPAU in that case.

The Solution

A patch for this issue has been provided by Stephen Warren. This patch implements couple of workarounds in libvdpau fixing the blue faces bug.

Workarounds:
  1. Swap U and V planes to VdpVideoSurfacePutBitsYCbCr to fix blue-tinged videos.
  2. Disable VdpPresentationQueueSetBackgroundColor, so that Flash doesn't set the background to pure black or pure white, which would cause the VDPAU image to bleed through to other parts of the desktop with those very common colors.
These workarounds are only enabled when running under Flash player, and may be individually controlled via /etc/vdpau_wrapper.cfg, should they ever need to be disabled.

A new libvdapau1 was released few days back in Debian Unstable that included this patch and now it has been merged into official Ubuntu 12.10 repositories

Unfortunately I don't have an Nvidia card to test the fix but it should work as said. Lets hope this fix lands in Precise as well. In the meantime, you can use patched libvdpau1 in Oneiric and Precise by running commands below:

sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1

More information on the bug and its solutions can be found on Ask Ubuntu.

0 comments:

Post a Comment

Preload Image 1 Preload Image 2 Preload Image 3 Preload Image 4 Preload Image 5