General

What is it

VDPAU (Video Decode and Presentation API for Unix) provides a
large subset of PureVideo HD functionality for NVIDIA Linux, Solaris, and FreeBSD users. It in essence provides what PureVideo/DirectX Video Acceleration is on the Windows platform. In addition to updated NVIDIA binary drivers
that support the API, extensive documentation is available.

Some highlights of VDPAU:

Defines an API for GPU-accelerated decode of MPEG-1, MPEG-2, H.264, and VC-1 bitstreams.

Defines an API for post-processing of decoded video, including temporal and spatial deinterlacing, inverse telecine, and noise reduction.

Defines an API for timestamp-based presentation of final video frames.

Defines an API for compositing sub-picture, on-screen display, and other UI elements.

Note that VDPAU does not address content protection issues.

Some highlights/limitations of NVIDIA's current implementation:

Supported on NVIDIA GPUs with the NVIDIA second generation video processors (see list further below)

Currently, only one video stream can be decoded at a time; NVIDIA hopes to lift this restriction eventually.

Supported Cards

VDPAU is currently supported on the following NVIDIA GPUs (driver version 180.44):

Supported Drivers

Support started with version 180.06. Version 180.41 (20 March 2009) are available in 32bit and 64bit versions. Bugs are fixed with every new release. 180.37 adds fixed VC-1 decoding, improved handling of corrupted/invalid H.264 streams and improvied error recovery. Version 180.41 is considered to be a "pre-release". The latest stable driver with VDPAU support is 180.44.

Version 185.13 has also been released (13 March 2009) - but there are no reports about this yet. The version 185 line is apparently the new beta line.

In addition to "aptitude safe-upgrade", the package nvidia-glx-180 needs to be installed to replace the earlier version of nvidia-glx-*.

Warning: Unlike the support in trunk that sees steady ongoing improvements, the backport is unsupported, unofficial, and only is updated as Avenard finds time and the inclination to do so. As he says, "please do not bother [the mythtv-dev mailing list], and do not lodge bugs in the mythtv TRAC system."

If you wish to try an nvidia video board instead of your other video/graphic chipset, be careful. Make a mythconverg database backup, and note the SVN of your present working version. In addition, it would be wise to extract the NVidia pkg.run file (NVIDIA-LINUX....pkg.run -x) and make backups of the original files for which copies exist in the ../include/GL, ../lib and ../X11R6 folders. The package help states that the option '--no-opengl-headers' will skip installing the Nvidia OpenGL headers, however it appears that the other libraries will be replaced anyway. It also does not appear to be the case that the '--uninstall' option actually reverses the install, as the orginal files do not appear to be retained. This is a real time-killer ( and WAF killer) and may require a complete re-installation of the system if you wish to revert to a different family of GPU chip.

Video profiles can not filter based on video format (only by resolution). So if you wanted to use VDPAU for H.264/HD-PVR and Xv for Mpeg2 this is not currently possible.

Off loading to the GPU may increase its heat out-put. It may seem obvious, but check your GPU temperature and cooling arrangements.

Troubleshooting

The following configuration changes should be used to prevent issues with VDPAU when used with MythTV:

To prevent vertical and horizontal tearing of the image when viewing live tv or recordings, run the following to disable X Composite Extension (may also cure the all white/gray OSD):

sudo nvidia-xconfig --no-composite

Enable OpenGL VSync within MythTV.

External Links

User results

Note: Reports on 1080i content are of greatest interest for deinterlacers. Do not list a deinterlacer if testing on progressive content like 720p. If reports for 720p and 1080i differ (as they will if using a deinterlacer) consider making two entries or indicating the difference in your success/fail results.

Chipset

Onboard / Allocated Memory

Driver

De-interlacer

SVN Ver

Source

OSD

Theme

Window Manager

Display res

Working

CPU Usage when playing

Comments

8200 IGP

512mb

180.29

Temporal 2x

r20038 trunk

BBC HD H.264 1080i 21Mb/s

Metallurgy

Terra

KWin

1440x900

Yes

Athlon 4850e 2.5Ghz 10-15%

Some amount of tearing. Visual artifacts for the first 20 seconds.

8200 IGP

512mb

180.29

Temporal 2x

r20038 trunk

HD-DVD VC-1 1080p 35Mb/s

Metallurgy

Terra

KWin

1440x900

Yes

Athlon 4850e 2.5Ghz 35%

Asus 8300GS

256mb

Beta 180.11

None

r19260

HDHomeRun mpeg2 720p and 1080i

isthmus

Blootube Wide

Fluxbox

1080p

Yes

Athlon X2 64 5700 4-5%

720p is reliable but 1080 i get not enought memory errors.

Asus 8300GS

256mb

Beta 180.11

None

r19179

HD-PVR h.264 720p 13.5 Mbits/sec

Retro

MythCenter-wide

Gnome

720p

Yes

Athlon X2 64 4200+ 4-5%

GeForce 8300

512mb

Beta 180.16

Bob 2x

r19260

DVB-S h.264 1080i 18 Mbits/sec

Blootube

MythCenter-wide

KDE

1080p

Yes

Athlon X2 64 5200+ 10-15%

PNY 8400GS PCI

512mb

Beta 180.22

OneField

r19640

HDHomerun, Fusion5 HD 720p and 1080i

Gray

ProjectGrayhem-wide

Fluxbox

1080p

Yes

Athlon 64 3200+ 5-15%

OSD causes stuttering, only OneField deinterlacing is usable

Sparkle 8400GS PCI

512mb

Beta 180.11

Basic 2x HW

r19298

HDHomerun, 720p and 1080i

Default (Blue)

G.A.N.T.

fvwm

VGA (analog) 1024x768

Yes

Intel Atom 330, 10-20%

I'm no expert but it looks awesome to me! OSD seems ok.

Sparkle SFPC84GS512U2LP GeForce 8400 GS PCI

512mb

180.35

Temporal 1x HW

0.21-fixes w/patch

OTA 720p and 1080i

Retro

Retro

fluxbox

VGA (analog) 1280x1024

Yes

AMD Geode NX1750 (1.4 Ghz), ~30%

Looks super, OSD set to non-fade. Bob 2x is *almost* useable as is Temporal 2x HW. One field also works well.

PNY GeForce 8400 GS PCI

512mb

Beta 180.16

One Field (1x, Hw)

r19597

1080i DVI

Default (Blue)

Retro

Gnome

1080i

Yes

Intel Duo Core 2 2.2Ghz, 10%

Looks great and playback is good. OSD causes play back to stutter a little bit. Tweaking would probably fix.

Sparkle 8400GS PCI

512mb

Beta 180.16

Basic 2x HW

r19298

HDHomerun 1080i, PVR-150 SD mpeg2

Default (Blue)

G.A.N.T.

fvwm

VGA (analog) 1024x768

No

Intel Atom 330, 10-20%

No video. Rolled back driver and things work again. Haven't tried building new myth.