Difference between revisions of "Vdpau"

From MythTV Official Wiki
Jump to: navigation, search
(Caveats)
Line 150: Line 150:
 
* Currently only supported in SVN .22
 
* Currently only supported in SVN .22
 
* Will '''NOT''' be backported to .21-fixes
 
* Will '''NOT''' be backported to .21-fixes
* Video profiles can't chosed based on video format (only by res).  So if you wanted to use VDPAU for H.265/HD-PVR and Xv for Mpeg2 OTA this is not currently possible.
+
* Video profiles can't chosed 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.
 
* Many MKV's will not play (Should be fixed in next Nvidia driver release.
  

Revision as of 19:41, 7 December 2008

General

What is it

he 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:

ftp://download.nvidia.com/XFree86/vd...tml/index.html

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.
   * Available in the 180.06 NVIDIA public beta release:
     http://www.nvidia.com/object/linux_d...32_180.06.html
     http://www.nvidia.com/object/linux_d...64_180.06.html
     http://www.nvidia.com/object/freebsd_180.06.html
     http://www.nvidia.com/object/solaris...ay_180.06.html


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:

ftp://download.nvidia.com/XFree86/vd...076399.tar.bz2

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.

Supported Cards

VDPAU is currently supported on the following NVIDIA GPUs:

Desktop GPUs:

  • GeForce 200 Series
  • GeForce 9 Series
  • GeForce 86xx Series
  • GeForce 85xx Series
  • GeForce 84xx Series
  • GeForce 8300 GS
  • GeForce 8800 GTS 512
  • GeForce 8800 GT
  • GeForce 8800 GS

Mobile GPUs:

  • GeForce 98xxM
  • GeForce 9700M
  • GeForce 96xxM
  • GeForce 9500M
  • GeForce 9300M
  • GeForce 9200M
  • GeForce 8800M
  • GeForce 8800M GTS
  • GeForce 8800M GTX
  • GeForce 8600M
  • GeForce 8400M

Motherboard GPUs:

  • GeForce 9400
  • GeForce 9300
  • GeForce 9100
  • GeForce 8300
  • GeForce 8200

VC-1 support in NVIDIA's VDPAU implementation currently requires GeForce 9300 GS, GeForce 9200M GS, GeForce 9300M GS, or GeForce 9300M GS.

Supported Drivers

Nvidia Beta Drivers only. Support started in 180.06. Current version is 180.11

Myth Support

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.

Display Profiles

Setup a display profile with:

   decoder = nvidia vdpau acceleration
   video + osd renderers: vdpau 

What works

  • Deinterlacing (select "Advanced (2x, Hw)" for best results)
  • OSD/PiP.
  • Color controls
  • Other stuff

What doesn't

  • Lots and lots of other stuff.

Caveats

  • No AGP cards (But PCI versions do exist)
  • Currently only supported in SVN .22
  • Will NOT be backported to .21-fixes
  • Video profiles can't chosed 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.

User results

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.