[gst-devel] VA-API support

Edward Hervey bilboed at gmail.com
Tue May 11 09:19:46 CEST 2010


On Mon, 2010-05-10 at 15:06 +0200, Gwenole Beauchesne wrote:
> Hi,
> 
> I have uploaded some experimental plugins with VA-API support:
> <http://www.splitted-desktop.com/~gbeauchesne/gstreamer-vaapi/>
> 
> gstreamer-vaapi consists in a collection of VA-API based plugins for
> GStreamer and helper libraries.
> 
>    * `vaapidecode' is used to decode MPEG-2, MPEG-4, H.264, VC-1, WMV3
>      videos to video/x-vaapi-surfaces surfaces, depending on the
>      underlying HW capabilities.
> 
>    * `vaapiconvert' is used to convert from video/x-raw-yuv pixels to
>      video/x-vaapi-surface surfaces.
> 
>    * `vaapisink' is used to display video/x-vaapi-surface surfaces to
>      screen.

  Awesome ! 

> 
> Features
> --------
> 
>    * Fully Open Source solution
>    * VA-API support from 0.29 to 0.31
>    * OpenGL rendering through VA/GLX or GLX texture-from-pixmap + FBO

  I wonder how we could integrate this with the existing GL plugins and
the ongoing cairo work Benjamin has been doing. Carl-Anton has started
doing cairo support for the VDPAU plugins, maybe you can check out his
work or you guys can exchange tips.

>    * Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)
> 
> Requirements
> ------------
> 
> Software requirements
> 
>    * libgstreamer0.10-dev >= 0.10.0
>    * libgstreamer-plugins-base0.10-dev >= 0.10.0

  Hmm... You might want to make it require more recent versions, those
are almost 5 years old and a lot has changed since. A core/base from a
year ago should do it, while not forcing people to use just-released
versions.

>    * libva-dev >= 0.31.0-1+sds9 (VA/GLX)

  Is that version needed even if you have a intel GPU ? Or is it only if
you want to use the other backends ? You mention above it has VA-API
support from 0.29 to 0.31.

>    * libavcodec-dev >= 0.6 or with <libavcodec/vaapi.h>
> 
> Hardware requirements
> 
>    * AMD platforms with UVD2 (XvBA supported)
>    * Intel Eaglelake (G45)
>    * Intel Ironlake (HD Graphics)
>    * Intel Poulsbo (US15W)
>    * NVIDIA platforms with PureVideo (VDPAU supported)
> 
> Caveats
> -------
> 
>    * No integration within decodebin2 or the playbin2 pipeline
>    * No ad-hoc parser, vaapidecoder currently relies on FFmpeg

  This is also an area where Carl-Anton's work on gst-vdpau could help
fix that, the mpeg1/2 part should be trivial to implement for ex (code
already available in -bad/sys/vdpau/), and since he has to write such
parsers for this Summer of Code, you could re-use them easily imho.

>    * MPEG-4 Part-2 (DivX) has decoding bugs
> 
> Regards,
> Gwenole.

  * Do you have a code repository ? It would be nice for other
developers to follow/contribute if you had a git repository somewhere
(maybe even on github/gitorious).
  * Would be nice to share code between the vdpau and the vaapi plugins
(like the bitstream parsing parts that both (and other HW-accelerated
plugins) require). This might be made easier if we integrated your
plugins in -bad, and you'd get the bonus side-effect of having the rest
of the GStreamer community maintaining/improving your code as well :)
  * Your plugins are LGPL... but they depend on a library (in gst-libs/)
which is GPL, making the plugins GPL. Any reason for that ?


  Once again, Awesome work :)

     Edward

> 
> ------------------------------------------------------------------------------
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel






More information about the gstreamer-devel mailing list