GStreamer multimedia framework
Find a file
Gwenole Beauchesne a503aaf9b9 display: add initial support for display attributes.
The VA display attributes are mapped to properties so that to maintain the
GStreamer terminology. Properties are to be identified by name, but internal
functions are available to lookup the property by the actual VA display
attribute type.
2012-08-27 17:52:32 +02:00
debian.upstream Add initial support for VA/DRM. 2012-08-01 16:40:17 +02:00
docs videobuffer: drop deprecated functions. 2012-07-24 16:13:31 +02:00
gst vaapisink: handle VA/DRM API. 2012-08-01 16:40:17 +02:00
gst-libs display: add initial support for display attributes. 2012-08-27 17:52:32 +02:00
pkgconfig Add initial support for VA/DRM. 2012-08-01 16:40:17 +02:00
tests tests: add support for headless decoding. 2012-08-01 16:40:17 +02:00
.gitignore libs: use generic g_cclosure_marshal_VOID__VOID(). 2012-07-19 15:19:16 +02:00
AUTHORS AUTHORS: update to match current authors. 2012-03-16 14:21:36 +01:00
autogen.sh autogen: fix configure script generation when srcdir != builddir. 2012-08-27 10:25:18 +02:00
configure.ac configure: use new libtool syntax. 2012-08-27 10:13:39 +02:00
COPYING.LIB Relicense gst-libs/ code to LGPL v2.1+. 2010-09-20 12:55:42 +02:00
Makefile.am configure: put m4 macros and autogenerated files into m4/ directory. 2012-07-19 13:07:20 +02:00
NEWS Add initial support for VA/DRM. 2012-08-01 16:40:17 +02:00
README Update introduction and changelog. 2012-04-02 11:38:44 +02:00

  gstreamer-vaapi
  VA-API support to GStreamer

  Copyright (C) 2010-2011 Splitted-Desktop Systems
  Copyright (C) 2011-2012 Intel Corporation
  Copyright (C) 2011 Collabora Ltd.


License
-------

gstreamer-vaapi helper libraries and plugin elements are available
under the terms of the GNU Lesser General Public License v2.1+

Overview
--------

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.

  * `vaapiupload' is used to convert from video/x-raw-yuv pixels to
    video/x-vaapi-surface surfaces.

  * `vaapidownload' is used to convert from video/x-vaapi-surface
    surfaces to video/x-raw-yuv pixels.

  * `vaapipostproc' is used to postprocess video/x-vaapi-surface
    surfaces, for e.g. deinterlacing.

  * `vaapisink' is used to display video/x-vaapi-surface surfaces to
    screen.


Features
--------

  * VA-API support from 0.29 to 0.32
  * MPEG-2, MPEG-4, H.264 and VC-1 ad-hoc decoders
  * OpenGL rendering through VA/GLX or GLX texture-from-pixmap + FBO
  * Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)


Requirements
------------

Software requirements

  * libva-dev >= 1.0.3 (VA/GLX)
  * libgstreamer0.10-dev >= 0.10.35.1
      or with GstBaseSink::query()
  * libgstreamer-plugins-base0.10-dev >= 0.10.35
  * libgstreamer-plugins-bad0.10-dev >= 0.10.22.1
      or with GstVideoContext, GstSurfaceBuffer, codecparsers

  If codecparsers-based decoders are not used:

  * libavcodec-dev >= 0.6
      or with <libavcodec/vaapi.h>

Hardware requirements

  * AMD platforms with UVD2 (XvBA supported)
  * Intel Eaglelake (G45)
  * Intel Ironlake, Sandy Bridge and Ivy Bridge (HD Graphics)
  * Intel Poulsbo (US15W)
  * Intel Medfield or Cedar Trail
  * NVIDIA platforms with PureVideo (VDPAU supported)


Usage
-----

  VA elements are automatically plugged into GStreamer pipelines. So,
  using playbin2 should work as is. However, here are a few alternate
  pipelines constructed manually.

  * Play an H.264 video with an MP4 container in fullscreen mode
  $ gst-launch-0.10 -v filesrc location=/path/to/video.mp4 ! \
      qtdemux ! vaapidecode ! vaapisink fullscreen=true

  * Play a raw MPEG-2 interlaced stream
  $ gst-launch-0.10 -v filesrc location=/path/to/mpeg2.bits ! \
      mpegvideoparse ! vaapidecode ! vaapipostproc ! vaapisink