GStreamer multimedia framework
Find a file
Gwenole Beauchesne aedef381b2 Fix make dist to include all source files, in any case.
Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
sure to include all source files in either case while generating source
tarballs.
2013-04-10 15:43:28 +02:00
debian.upstream configure: rename GST_MAJORMINOR to GST_API_VERSION. 2013-03-20 11:44:10 +01:00
docs decoder: drop obsolete functions. 2013-04-03 13:34:59 +02:00
ext codecparsers: update to gst-vaapi-branch commit 500bc02. 2013-02-07 15:29:44 +01:00
gst Fix make dist to include all source files, in any case. 2013-04-10 15:43:28 +02:00
gst-libs Fix make dist to include all source files, in any case. 2013-04-10 15:43:28 +02:00
pkgconfig configure: rename GST_MAJORMINOR to GST_API_VERSION. 2013-03-20 11:44:10 +01:00
tests Allow build against either GStreamer API (0.10 or 1.0). 2013-04-10 14:58:17 +02:00
.gitignore codecparsers: jpeg: use submodule sources. 2012-10-11 14:19:38 +02:00
.gitmodules Add videoutils submodule for GstVideoDecoder APIs. 2012-12-21 16:01:16 +01:00
AUTHORS AUTHORS: update to match current authors. 2012-03-16 14:21:36 +01:00
autogen.sh Add videoutils submodule for GstVideoDecoder APIs. 2012-12-21 16:01:16 +01:00
configure.ac Bump library major version. 2013-04-10 15:21:57 +02:00
COPYING.LIB Relicense gst-libs/ code to LGPL v2.1+. 2010-09-20 12:55:42 +02:00
Makefile.am debian: fix make dist for packaging. 2012-10-17 15:49:23 +02:00
NEWS 0.5.2. 2013-03-29 10:19:25 +01:00
README legal: fix year for some copyright notices (2013). 2013-01-29 14:37:02 +01:00

  gstreamer-vaapi
  VA-API support to GStreamer

  Copyright (C) 2010-2011 Splitted-Desktop Systems
  Copyright (C) 2011-2013 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 JPEG, 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
  * JPEG, 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 the Wayland display server
  * Support for headless decode pipelines with VA/DRM
  * Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)


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

Software requirements

  * GStreamer 0.10.x:
      libglib2.0-dev (>= 2.28)
      libgstreamer0.10-dev (>= 0.10.36)
        or with GstBaseSink::query()
      libgstreamer-plugins-base0.10-dev (>= 0.10.36)
      libgstreamer-plugins-bad0.10-dev (>= 0.10.22.1)
        or with GstVideoContext, GstSurfaceBuffer, codecparsers

  * Renderers:
      DRM: libva-dev (>= 1.1.0), libdrm-dev, libudev-dev
      X11: libva-dev (>= 1.0.1)
      GLX: libva-dev (>= 1.0.3)
      Wayland: libva-dev (>= 1.1.0), libwayland-dev (>= 0.95.0)

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