New Video Decode and Presentation API
Andy Ritger
aritger at nvidia.com
Fri Nov 14 10:28:13 PST 2008
I'm pleased to announce a new video API for Unix and Unix-like platforms,
and a technology preview implementation of this API from NVIDIA.
The API is called VDPAU (Video Decode and Presentation API for Unix).
The current API documentation is here:
ftp://download.nvidia.com/XFree86/vdpau/doxygen/html/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_display_ia32_180.06.html
http://www.nvidia.com/object/linux_display_amd64_180.06.html
http://www.nvidia.com/object/freebsd_180.06.html
http://www.nvidia.com/object/solaris_display_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/vdpau/mplayer-vdpau-3076399.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.
Thanks,
Andy Ritger
Manager, NVIDIA Linux Graphics Driver
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 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
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.
More information about the xorg
mailing list