New Video Decode and Presentation API

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

New Video Decode and Presentation API

Andy Ritger

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.


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: New Video Decode and Presentation API

Felipe Contreras
On Fri, Nov 14, 2008 at 8:39 PM, Andy Ritger <[hidden email]> wrote:

>
> 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.

I'm curious, NVIDIA is a member of OpenMAX but somehow you decided to
write a new proprietary API, why? Is NVIDIA pushing for OpenMAX only
in embedded?

At least you are providing more functionality, which is good.

--
Felipe Contreras

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: New Video Decode and Presentation API

Iñigo Illán Aranburu
In reply to this post by Andy Ritger
What about VA API? Why are you pushing a diferent technology instead of working with the comunity? This fragmentation, I think, benefits no one

El vie, 14-11-2008 a las 10:39 -0800, Andy Ritger escribió:
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.


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: New Video Decode and Presentation API

David Schleef-2
On Wed, Dec 17, 2008 at 04:46:59PM +0100, Iñigo Illán Aranburu wrote:
> What about VA API? Why are you pushing a diferent technology instead of
> working with the comunity? This fragmentation, I think, benefits no one

 From a GStreamer perspective, VDPAU (and OpenMax) are much better
APIs, since they roughly fit into the GStreamer system.  VA does not
provide complete decoders, it leaves that to example code or an
(unwritten) higher level.  So we'll be waiting for the VA developers
to create a library that provides a complete decoder.

 From NVidia's perspective, my speculation is that they started this
project long before VA was thought of.



dave...


> El vie, 14-11-2008 a las 10:39 -0800, Andy Ritger escribió:
>
> > 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).


------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: New Video Decode and Presentation API

Felipe Contreras
On Wed, Dec 17, 2008 at 7:41 PM, David Schleef <[hidden email]> wrote:

> On Wed, Dec 17, 2008 at 04:46:59PM +0100, Iñigo Illán Aranburu wrote:
>> What about VA API? Why are you pushing a diferent technology instead of
>> working with the comunity? This fragmentation, I think, benefits no one
>
>  From a GStreamer perspective, VDPAU (and OpenMax) are much better
> APIs, since they roughly fit into the GStreamer system.  VA does not
> provide complete decoders, it leaves that to example code or an
> (unwritten) higher level.  So we'll be waiting for the VA developers
> to create a library that provides a complete decoder.
>
>  From NVidia's perspective, my speculation is that they started this
> project long before VA was thought of.

My guess is that all the major GPU companies want to push their own
API's and they don't want to collaborate.

--
Felipe Contreras
------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: New Video Decode and Presentation API

Josep Torra
Felipe Contreras wrote:

> On Wed, Dec 17, 2008 at 7:41 PM, David Schleef <[hidden email]> wrote:
>  
>> On Wed, Dec 17, 2008 at 04:46:59PM +0100, Iñigo Illán Aranburu wrote:
>>    
>>> What about VA API? Why are you pushing a diferent technology instead of
>>> working with the comunity? This fragmentation, I think, benefits no one
>>>      
>>  From a GStreamer perspective, VDPAU (and OpenMax) are much better
>> APIs, since they roughly fit into the GStreamer system.  VA does not
>> provide complete decoders, it leaves that to example code or an
>> (unwritten) higher level.  So we'll be wait ing for the VA developers
>> to create a library that provides a complete decoder.
>>
>>  From NVidia's perspective, my speculation is that they started this
>> project long before VA was thought of.
>>    
>
> My guess is that all the major GPU companies want to push their own
> API's and they don't want to collaborate.
About VDPAU vs VA API, both require a higher layer to split the bitstream in pictures/nal units and decode some headers in order to be able to fill picture structures.

From my point of view VA API is mainly something derived from DXVA2 as I see both very close.

Also VDPAU and VA API are very similar and both have the same complexity in order to write a gstreamer based decoder.




 


------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel