GStreamer multimedia framework
Find a file
Gwenole Beauchesne 7e8470e1ec vaapidecode: fix srcpad caps for GStreamer 1.2.
The srcpad caps exposed for GStreamer 1.2 were missing any useful info
like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
that it relied on possibly un-initialized data. Fix srcpad caps to be
initialized from a sanitized copy of GstVideoDecoder output state caps.

Note: the correct way to expose the srcpad caps triggers an additional
issue in core GStreamer auto-plugging capabilities as the correct caps
to be exposed should be format=ENCODED with memory:VASurface caps feature
at the minimum. In some situations, we could determine the underlying
VA surface format, but this is not always possible. e.g. cases where it
is not allowed to expose the underlying VA surface data, or when the
VA driver implementation cannot actually provide such information.
2013-11-21 11:08:23 +01:00
debian.upstream Fix detection and packaging of GStreamer 1.2.x builds. 2013-09-27 14:24:02 +02:00
docs filter: allow specification of render target regions. 2013-08-27 18:28:10 +02:00
ext codecparsers: update to gst-vaapi-branch commit b33bd32. 2013-09-24 16:22:59 +02:00
gst vaapidecode: fix srcpad caps for GStreamer 1.2. 2013-11-21 11:08:23 +01:00
gst-libs vaapipostproc: rework plug-in element. 2013-10-09 18:30:06 +02:00
pkgconfig configure: rename GST_MAJORMINOR to GST_API_VERSION. 2013-03-20 11:44:10 +01:00
tests tests: simple-decoder: fix for non-X11 backends. 2013-09-24 16:24:05 +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 configure: automatically detect GStreamer API version. 2013-11-18 18:35:22 +01: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.6. 2013-08-31 15:48:24 +02:00
README README: updates. 2013-04-11 09:24:44 +02: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

  * GStreamer 1.0.x:
      libglib2.0-dev (>= 2.28)
      libgstreamer1.0-dev (>= 1.0.0)
      libgstreamer-plugins-base1.0-dev (>= 1.0.0)
      libgstreamer-plugins-bad1.0-dev (>= 1.0.0)

  * 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


Reporting Bugs
--------------

  Bugs can be reported in the GNOME Bugzilla system at:
  <https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi>

  From the main page, new bugs can be reported through New -> Other ->
  gstreamer-vaapi product.