VP2 is the video decoding acceleration engine inside NV84-NV96, NVA0 cards (see CodeNames). It corresponds to "VDPAU feature set A" in the NVIDIA documentation. It has partial acceleration for MPEG1/2 and VC-1, and full acceleration for H.264.

WARNING: The firmware supplied by NVIDIA (and used here as well) allows any user with graphics access to execute arbitrary code on the internal xtensa processors. This means that such a user would be able to read/write any system memory. If you have an IOMMU, this is somewhat mitigated in that the user would only be able to do arbitrary reads/writes to VRAM and CPU-side graphics objects.

Here are the steps to test it out under nouveau:

  1. Extract firmware from the blob using extract_firmware.py and place it in /lib/firmware/nouveau.
  2. Get a 3.11-rc4 or later kernel, or nouveau/master, compile, boot.
  3. Make sure you have Mesa 9.2 or later. If you don't want to overwrite your system install, you'll need a libvdpau installed to the new prefix as well, otherwise the LD_LIBRARY_PATH won't cause the new vdpau backend driver to load, and there's no way to override the vdpau search path at runtime.
  4. Run mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau, foo.mp4

If you're looking to use XvMC, just configure /etc/X11/XvMCConfig to point to the appropriate libXvMCnouveau.so, and you should then be able to use mplayer -vo xvmc with no issue.

Known Issues:

  • H.264: Interlaced videos are not supported (but they're rare)
  • H.264: Some videos show very occasional blocking effects
  • MPEG2: VDPAU shows a lot of small artifacts. XvMC works fine.
  • VC-1: Not supported, no plans to add support
  • Some websites' flash video players get messed up (if you set EnableLinuxHWVideoDecode = 1 in your /etc/adobe/mms.cfg)