What is it
The API is called VDPAU (Video Decode and Presentation API for Unix). It provides a large subset of PureVideo HD functionality for NVIDIA Linux, Solaris, and FreeBSD users.
The current API documentation is here:
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.
Some highlights/limitations of NVIDIA's current implementation:
- Supported on NVIDIA GPUs with the NVIDIA second generation video processors (see the end of this announcement for a complete GPU list).
- Currently, only one video stream can be decoded at a time; we hope to lift this restriction eventually.
The VDPAU support in the NVIDIA 180.06 beta release is still very preliminary. We are aware of cases of visual corruption and in some cases GPU hangs. We will be working on these issues over the next several NVIDIA driver releases.
While NVIDIA's VDPAU implementation is not ready for end user use yet, it should be far enough along that interested application developers can begin working with it.
Additionally, NVIDIA has developed patches to ffmpeg and MPlayer to demonstrate a video player using VDPAU:
These patches include changes against libavcodec, libavutil, ffmpeg, and MPlayer itself; they may serve as an example of how to use VDPAU.
Once we do some further testing, bugfixing, and cleanup, we will contribute the MPlayer patches to the MPlayer developers.
If other hardware vendors are interested, they are welcome to also provide implementations of VDPAU. The VDPAU API was designed to allow a vendor backend to be selected at run time.
VDPAU is currently supported on the following NVIDIA GPUs:
|Desktop GPUs||Mobile GPUs||Motherboard GPUs|
VC-1 support in NVIDIA's VDPAU implementation currently requires GeForce 9300 GS, GeForce 9200M GS, GeForce 9300M GS, or GeForce 9300M GS. VC-1 is an alternative to H.264, and is a supported video codec for HD DVDs and Blu-ray Discs.
Nvidia Beta Drivers only. Support started in 180.06. Current version is 180.11
VDPAU was announced to the mythtv dev list on Nov 15, by Andy Ritger, Manager of the NVIDIA Linux driver. Within 4 days, Issac had posted a POC (proof of concept) patch to the mailing list for VDPAU support within trunk, saying "Preliminarily, this stuff looks _very_ promising." On November 29, Changeset 19165 included preliminary support within trunk. While the VDPAU support is still in it's infancy, in both the driver and myth, several testers have responded saying that they are able to use VDPAU with limited issues. Running current trunk for VDPAU support is currently not recommended except for testing and bug reporting purposes only.
Preliminary support was added to SVN at r19165. You must compile with the --enable-vdpau and do a dist clean if upgrading from prior versions.
Setup a display profile with:
decoder = nvidia vdpau acceleration video + osd renderers: vdpau
- Deinterlacing (select "Advanced (2x, Hw)" for best results)
- Color controls
- Other stuff
- Lots and lots of other stuff.
- No AGP cards (But PCI versions do exist)
- Currently only supported in SVN .22
- Warning: As of December 7, 2008: Breaks digital playback on Intel chipsets for SVN from the first beta version (circa 19110) through at least 19253. Analog recordings (PVR500 etc) record and play. Digital (HDHomeRun) in standard and high definition do not play in mythtv, although recordings are fine and playable in mplayer. Make a mythconverg database backup and at least note the SVN version of your present working version if you wish to try this.
- Will NOT be backported to .21-fixes
- Video profiles can't chosen based on video format (only by res). So if you wanted to use VDPAU for H.264/HD-PVR and Xv for Mpeg2 this is not currently possible.
- Many MKV's will not play (Should be fixed in next Nvidia driver release - may be fixed in driver version 180.11 December 2, 2008).
|Chipset||Onboard / Allocated Memory||Driver||De-interlacer||SVN Ver||Source||OSD||Theme||Window Manager||Display res||Working||CPU Usage when playing||Comments|
|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%||OSD is all white and unreadable|