HD Video Playback With A $20 CPU & $30 GPU On Linux
The Video Decode and Presentation API for Unix is an excellent and well-designed solution by NVIDIA for offloading the decoding, post-processing, compositing, and displaying compressed/uncompressed video streams on the GPU. However, that is with video files for where it works. At this time not all H.264/WMV3/MPEG/VC-1 files are compatible but there are a few caveats with some video files having too many reference frames and some H.264 versions being too new for NVIDIA's current implementation. However, it has been confirmed by NVIDIA that they will be working on addressing these initial issues for future driver releases.
What VDPAU also needs for wide-adoption among NVIDIA customers are for these patches to enter MPlayer and FFmpeg and then appear in a released version of MPlayer so that desktop users will easily be able to benefit from this work without having to checkout code from a repository and then building it from source. The MythTV development community has already written their own MythTV VDPAU patches and is already present in their SVN repository, but MythTV must be built with the --enable-vdpau argument. The MythTV implementation supports VDPAU with on-screen displays, de-interlacers, color controls, and codecs.
It's fairly conclusive that VDPAU does an excellent job of offloading the video decoding and processing from the CPU and over to the GPU. With H.264, MPEG, and WMV3 we had incredible improvements when using this newly introduced support found in NVIDIA's Linux, Solaris, and FreeBSD drivers. VDPAU does not require a high-end NVIDIA graphics card to work well, but even the $30 GeForce 8400GS had done its job and with no active cooling would be a great candidate for a HTPC. The AMD Sempron LE-1150 with a thermal envelope of just 45W could be cooled easily with minimal system fans also making it a great buy for a media PC.
On the next page we proceed to share some thoughts on whether we could see VDPAU in other Linux drivers and what the prospects are for video acceleration on Linux in general.