...
 
Commits (2954)
aclocal.m4
autom4te.cache
config.h*
config.log
config.status
config.guess
config.sub
config.rpath
configure
libtool
stamp-h
stamp-h.in
stamp-h1
gst-element-check-*.m4
ltmain.sh
missing
mkinstalldirs
compile
install-sh
depcomp
autoregen.sh
ABOUT-NLS
_stdint.h
/m4
.deps
.libs
*.lo
*.la
*.o
Makefile.in
Makefile
*~
*.swp
debian.upstream/changelog
debian.upstream/control
debian.upstream/gstreamer0.10-vaapi-doc.install
debian.upstream/gstreamer0.10-vaapi.install
debian.upstream/libgstvaapi-dev.install
debian.upstream/libgstvaapi-glx-0.install
debian.upstream/libgstvaapi-x11-0.install
debian.upstream/libgstvaapi0.install
docs/reference/libs/libs-docs.xml
docs/reference/plugins/plugins-docs.xml
gst-libs/gst/vaapi/gstvaapimarshal.c
gst-libs/gst/vaapi/gstvaapimarshal.h
gst-libs/gst/vaapi/stamp-marshal
gtk-doc.make
pkgconfig/gstreamer-vaapi-0.10.pc
pkgconfig/gstreamer-vaapi-glx-0.10.pc
pkgconfig/gstreamer-vaapi-x11-0.10.pc
tests/test-decode
tests/test-display
tests/test-surfaces
tests/test-textures
tests/test-windows
include: "https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/ci_template.yml"
Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> - Primary author
Maintainers:
Gwenole Beauchesne - Lead developer
Sreerenj Balachandran - Lead developer
Halley Zhao - MPEG-4:2 decoder
This project is maintained by Intel Corporation.
Contributors (sorted by first name):
Adrian Cox
Alban Browaeys
Changzhi Wei
Cong Zhong
Emilio Lopez
Fabrice Bellet
Feng Yuan
Guangxin Xu
Haihao Xiang
Holger Kaelberer
Jacobo Aragunde Pérez
Jan Schmidt
Javier Jardon
Julien Isorce
Junfeng Xu
Kristian Hogsberg
Lim Siew Hoon
Lionel Landwerlin
Mark Nauwelaerts
Martin Sherburn
Matthew Waters
Matthieu Bouron
Michael Olbrich
Nicolas Dufresne
Olivier Crete
Philip Lorenz
Robert Bradford
Ross Burton
Sebastian Dröge
Simon Farnsworth
Thibault Saunier
Victor Manuel Jaquez Leal
Warly
Xiaowei Li
Yan Yin
This diff is collapsed.
AUTOMAKE_OPTIONS = foreign
SUBDIRS = debian.upstream gst-libs gst pkgconfig tests docs
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = \
aclocal.m4 compile config.guess config.sub \
configure depcomp install-sh ltmain.sh \
Makefile.in missing config.h.in gtk-doc.make
DEB_BUILDDIR = debian.build
deb:
dpkg-buildpackage -rfakeroot -uc -us
deb.upstream: dist
-mkdir -p $(DEB_BUILDDIR)
cd $(DEB_BUILDDIR) && \
rm -rf $(PACKAGE)-$(VERSION) && \
tar zxvf ../$(PACKAGE)-$(VERSION).tar.gz && \
cd $(PACKAGE)-$(VERSION) && \
$(LN_S) debian.upstream debian && \
$(MAKE) deb -f Makefile.am
This diff is collapsed.
......@@ -3,7 +3,8 @@
VA-API support to GStreamer
Copyright (C) 2010-2011 Splitted-Desktop Systems
Copyright (C) 2011 Intel Corporation
Copyright (C) 2011-2014 Intel Corporation
Copyright (C) 2011 Collabora Ltd.
License
......@@ -12,29 +13,54 @@ 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.
* `vaapi<CODEC>dec' is used to decode JPEG, MPEG-2, MPEG-4:2, H.264
AVC, H.264 MVC, VP8, VC-1, WMV3, HEVC videos to VA surfaces,
depending on the actual value of <CODEC> and the underlying
hardware capabilities. This plugin is also able to implicitly
download the decoded surface to raw YUV buffers.
* `vaapi<CODEC>enc' is used to encode into MPEG-2, H.264 AVC, H.264
MVC, JPEG, VP8, HEVC videos, depending on the actual value of
<CODEC> (mpeg2, h264, etc.) and the hardware capabilities. By
default, raw format bitstreams are generated, so the result may be
piped to a muxer, e.g. qtmux for MP4 containers.
* `vaapiconvert' is used to convert from video/x-raw-yuv pixels to
video/x-vaapi-surface surfaces.
* `vaapipostproc' is used to filter VA surfaces, for e.g. scaling,
deinterlacing (bob, motion-adaptive, motion-compensated), noise
reduction or sharpening. This plugin is also used to upload raw
YUV pixels into VA surfaces.
* `vaapisink' is used to display video/x-vaapi-surface surfaces to
screen.
* `vaapisink' is used to render VA surfaces to an X11 or Wayland
display. This plugin also features a "headless" mode (DRM) more
suited to remote transcode scenarios, with faster throughput.
Features
--------
* VA-API support from 0.29 to 0.31
* VA-API support from 0.39
* JPEG, MPEG-2, MPEG-4, H.264 AVC, H.264 MVC, VP8, VC-1, HEVC and
VP9 ad-hoc decoders
* MPEG-2, H.264 AVC,H.264 MVC, JPEG, VP8 and HEVC ad-hoc encoders
* OpenGL rendering through VA/GLX or GLX texture-from-pixmap + FBO
* Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)
* Support for EGL backend
* 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)
* Support for HW video encoding on Intel HD Graphics hardware
* Support for VA Video Processing APIs (VA/VPP)
- Scaling and color conversion
- Image enhancement filters: Sharpening, Noise Reductio, Color
Balance, Skin-Tone-Enhancement
- Advanced deinterlacing: Motion-Adaptive, Motion-Compensated
Requirements
......@@ -42,29 +68,71 @@ Requirements
Software requirements
* libgstreamer0.10-dev >= 0.10.10
* libgstreamer-plugins-base0.10-dev >= 0.10.16
* libva-dev >= 0.31.0-1+sds9 (VA/GLX)
* libavcodec-dev >= 0.6 or with <libavcodec/vaapi.h>
* GStreamer 1.9.x:
libgstreamer1.0-dev (>= 1.9.x)
libgstreamer-plugins-base1.0-dev (>= 1.9.x)
libgstreamer-plugins-bad1.0-dev (>= 1.9.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 (>= 1.0.2)
Hardware requirements
* AMD platforms with UVD2 (XvBA supported)
* Intel Eaglelake (G45)
* Intel Ironlake (HD Graphics)
* Intel Ironlake, Sandybridge, Ivybridge, Haswell, Broadwell,
Skylake, etc. (HD Graphics)
* Intel BayTrail, Braswell
* Intel Poulsbo (US15W)
* NVIDIA platforms with PureVideo (VDPAU supported)
* Intel Medfield or Cedar Trail
* Hardware supported by Mesa VA gallium state-tracker
Usage
-----
VA elements are automatically plugged into GStreamer pipelines. So,
using playbin should work as is.
However, here are a few alternate pipelines that could be manually
constructed.
* 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
$ gst-launch-1.0 -v filesrc location=/path/to/video.mp4 ! \
qtdemux ! vaapidecodebin ! vaapisink fullscreen=true
* Play a raw MPEG-2 interlaced stream
$ gst-launch-1.0 -v filesrc location=/path/to/mpeg2.bits ! \
mpegvideoparse ! vaapimpeg2dec ! vaapipostproc ! vaapisink
* Convert from one pixel format to another, while also downscaling
$ gst-launch-1.0 -v filesrc location=/path/to/raw_video.yuv ! \
videoparse format=yuy2 width=1280 height=720 ! \
vaapipostproc format=nv12 height=480 ! vaapisink
* Encode a 1080p stream in raw I420 format into H.264
$ gst-launch-1.0 -v filesrc location=/path/to/raw_video.yuv ! \
videoparse format=i420 width=1920 height=1080 framerate=30/1 ! \
vaapih264enc rate-control=cbr tune=high-compression ! \
qtmux ! filesink location=/path/to/encoded_video.mp4
Caveats
Sources
-------
* No ad-hoc parser, vaapidecoder currently relies on FFmpeg
gstreamer-vaapi is Open Source software, so updates to this
framework are really easy to get.
Stable source code releases can be found at:
<https://gstreamer.freedesktop.org/src/gstreamer-vaapi/>
GitLab repository for work-in-progress changes is available at:
<https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi>
Reporting Bugs
--------------
Bugs can be reported in the GStreamer's GitLab system at:
<https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues>
This is GStreamer gstreamer-vaapi 1.17.0.1.
The GStreamer team is thrilled to announce a new major feature release in the
stable 1.0 API series of your favourite cross-platform multimedia framework!
As always, this release is again packed with new features, bug fixes and
other improvements.
The 1.16 release series adds new features on top of the 1.14 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
Full release notes will one day be found at:
https://gstreamer.freedesktop.org/releases/1.16/
Binaries for Android, iOS, Mac OS X and Windows will usually be provided
shortly after the release.
This module will not be very useful by itself and should be used in conjunction
with other GStreamer modules for a complete multimedia experience.
- gstreamer: provides the core GStreamer libraries and some generic plugins
- gst-plugins-base: a basic set of well-supported plugins and additional
media-specific GStreamer helper libraries for audio,
video, rtsp, rtp, tags, OpenGL, etc.
- gst-plugins-good: a set of well-supported plugins under our preferred
license
- gst-plugins-ugly: a set of well-supported plugins which might pose
problems for distributors
- gst-plugins-bad: a set of plugins of varying quality that have not made
their way into one of core/base/good/ugly yet, for one
reason or another. Many of these are are production quality
elements, but may still be missing documentation or unit
tests; others haven't passed the rigorous quality testing
we expect yet.
- gst-libav: a set of codecs plugins based on the ffmpeg library. This is
where you can find audio and video decoders and encoders
for a wide variety of formats including H.264, AAC, etc.
- gstreamer-vaapi: hardware-accelerated video decoding and encoding using
VA-API on Linux. Primarily for Intel graphics hardware.
- gst-omx: hardware-accelerated video decoding and encoding, primarily for
embedded Linux systems that provide an OpenMax
implementation layer such as the Raspberry Pi.
- gst-rtsp-server: library to serve files or streaming pipelines via RTSP
- gst-editing-services: library an plugins for non-linear editing
==== Download ====
You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://cgit.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
https://gitlab.freedesktop.org/gstreamer
Please submit patches via GitLab as well, in form of Merge Requests. See
https://gstreamer.freedesktop.org/documentation/contribute/
for more details.
For help and support, please subscribe to and send questions to the
gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the Freenode IRC network.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.
Interested developers of the core library, plugins, and applications should
subscribe to the gstreamer-devel list:
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
#!/bin/sh
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
PROJECT=gstreamer-vaapi
TEST_TYPE=-d
FILE=gst-libs
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
GTKDOCIZE=`which gtkdocize`
if test -z $GTKDOCIZE; then
echo "*** No gtk-doc support ***"
echo "EXTRA_DIST =" > gtk-doc.make
else
gtkdocize || exit $?
# we need to patch gtk-doc.make to support pretty output with
# libtool 1.x. Should be fixed in the next version of gtk-doc.
# To be more resilient with the various versions of gtk-doc one
# can find, just sed gkt-doc.make rather than patch it.
sed -e 's#) --mode=compile#) --tag=CC --mode=compile#' gtk-doc.make > gtk-doc.temp \
&& mv gtk-doc.temp gtk-doc.make
sed -e 's#) --mode=link#) --tag=CC --mode=link#' gtk-doc.make > gtk-doc.temp \
&& mv gtk-doc.temp gtk-doc.make
fi
AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
echo "*** No autoreconf found ***"
exit 1
else
ACLOCAL="${ACLOCAL-aclocal} $ACLOCAL_FLAGS" autoreconf -v --install || exit $?
fi
./configure "$@" && echo "Now type 'make' to compile $PROJECT."
This diff is collapsed.
DOCS = \
AUTHORS \
COPYING \
COPYING.LIB \
NEWS \
README \
$(NULL)
DEBIANFILES = \
changelog \
changelog.in \
compat \
control \
control.in \
copyright \
gstreamer-vaapi.install.in \
gstreamer$(GST_MAJORMINOR)-vaapi.install \
gstreamer-vaapi-doc.install.in \
gstreamer$(GST_MAJORMINOR)-vaapi-doc.install \
libgstvaapi.install.in \
libgstvaapi$(GST_VAAPI_MAJOR_VERSION).install \
libgstvaapi-dev.install.in \
libgstvaapi-dev.install \
libgstvaapi-x11.install.in \
libgstvaapi-x11-$(GST_VAAPI_MAJOR_VERSION).install \
libgstvaapi-glx.install.in \
libgstvaapi-glx-$(GST_VAAPI_MAJOR_VERSION).install \
rules \
$(NULL)
DEBIANGENFILES = \
control \
changelog \
gstreamer$(GST_MAJORMINOR)-vaapi.install \
gstreamer$(GST_MAJORMINOR)-vaapi-doc.install \
libgstvaapi$(GST_VAAPI_MAJOR_VERSION).install \
libgstvaapi-dev.install \
libgstvaapi-x11-$(GST_VAAPI_MAJOR_VERSION).install \
libgstvaapi-glx-$(GST_VAAPI_MAJOR_VERSION).install \
$(NULL)
EXTRA_DIST = \
$(DEBIANFILES)
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in $(DEBIANGENFILES)
gstreamer@GST_MAJORMINOR@-vaapi (@PACKAGE_VERSION@-1) unstable; urgency=low
* Autogenerated package, see NEWS file for ChangeLog.
-- Gwenole Beauchesne <gwenole.beauchesne@intel.com> @TODAY@
Source: gstreamer@GST_MAJORMINOR@-vaapi
Section: libs
Priority: optional
Maintainer: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Build-Depends: debhelper (>= 5),
cdbs,
libglib2.0-dev,
libgstreamer@GST_MAJORMINOR@-dev (>= @GST_VERSION_REQUIRED@),
libgstreamer-plugins-base@GST_MAJORMINOR@-dev (>= @GST_PLUGINS_BASE_VERSION_REQUIRED@),
libva-dev (>= @LIBVA_SDS_PACKAGE_VERSION@)
Build-Depends-Indep: gtk-doc-tools (>= @GTKDOC_VERSION@)
Standards-Version: 3.7.2
Package: gstreamer@GST_MAJORMINOR@-vaapi
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: gstreamer@GST_MAJORMINOR@-vaapi-doc
Description: VA-API plugins for GStreamer
This package contains GStreamer plugins for VA-API support:
- `vaapiconvert': converts from YUV pixels to VA surfaces
- `vaapisink': a VA-API based video sink
Package: gstreamer@GST_MAJORMINOR@-vaapi-doc
Architecture: all
Section: doc
Recommends: libgstvaapi@GST_VAAPI_MAJOR_VERSION@-dev (= ${source:Version})
Description: GStreamer VA-API documentation and manuals
This packages contains documentation for libraries and elements.
Package: gstreamer@GST_MAJORMINOR@-vaapi-dbg
Section: libdevel
Architecture: any
Depends: gstreamer@GST_MAJORMINOR@-vaapi (= ${Source-Version})
Description: VA-API plugins for GStreamer
VA-API support plugins for GStreamer.
.
This package contains the debug files.
Package: libgstvaapi@GST_VAAPI_MAJOR_VERSION@
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GStreamer libraries from the "vaapi" set
VA-API support libraries for GStreamer.
.
This package contains common libraries for the "vaapi" set.
Package: libgstvaapi-x11-@GST_VAAPI_MAJOR_VERSION@
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GStreamer libraries from the "vaapi" set
VA-API support libraries for GStreamer.
.
This package contains x11 libraries for the "vaapi" set.
Package: libgstvaapi-glx-@GST_VAAPI_MAJOR_VERSION@
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GStreamer libraries from the "vaapi" set
VA-API support libraries for GStreamer.
.
This package contains glx libraries for the "vaapi" set.
Package: libgstvaapi-dev
Architecture: any
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends},
libgstvaapi@GST_VAAPI_MAJOR_VERSION@ (= ${Source-Version}),
libgstvaapi-x11-@GST_VAAPI_MAJOR_VERSION@ (= ${Source-Version}),
libgstvaapi-glx-@GST_VAAPI_MAJOR_VERSION@ (= ${Source-Version})
Description: GStreamer development files for libraries from the "vaapi" set
GStreamer/VA-API development files.
.
This package contains development files for GStreamer libraries for
the "vaapi" set.
This package is maintained by:
Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Copyright:
gstreamer-vaapi helper libraries
and plugins elements: LGPL (v2.1 or later)
License:
Copyright (C) 2010-2011, Splitted-Desktop Systems.
Copyright (C) 2011, Intel Corporation.
gstreamer-vaapi helper libraries and plugins elements are available under
the terms of the GNU Lesser General Public License v2.1+.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA
On Debian GNU/Linux systems, the complete text of the GNU Lesser General
Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
debian/tmp/usr/share/doc/gstreamer@GST_MAJORMINOR@-vaapi
debian/tmp/usr/lib/gstreamer-@GST_MAJORMINOR@/libgstvaapi*.so
debian/tmp/usr/lib/libgstvaapi*.so
debian/tmp/usr/lib/pkgconfig/gstreamer-vaapi*.pc
debian/tmp/usr/include/gstreamer-@GST_MAJORMINOR@/gst/vaapi/*.h
debian/tmp/usr/lib/libgstvaapi-glx-@GST_MAJORMINOR@.so.*
debian/tmp/usr/lib/libgstvaapi-x11-@GST_MAJORMINOR@.so.*
debian/tmp/usr/lib/libgstvaapi-@GST_MAJORMINOR@.so.*
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include /usr/share/cdbs/1/rules/utils.mk
gst_pkgname = $(shell dpkg-parsechangelog | grep ^Source: | cut -d' ' -f2)
# Allow SMP build
ifeq ($(DEBIAN_BUILD_NCPUS),)
DEBIAN_BUILD_NCPUS = $(shell /usr/bin/getconf _NPROCESSORS_ONLN)
endif
ifneq ($(DEBIAN_BUILD_NCPUS),)
EXTRA_MAKE_FLAGS += -j$(DEBIAN_BUILD_NCPUS)
endif
MAKE += $(EXTRA_MAKE_FLAGS)
# Allow HTML documentation build
indep_conf_flags = \
--with-html-dir=\$${prefix}/share/doc/$(gst_pkgname)
# only build the docs if gtk-doc-tools is installed, i.e. binary-indep is
# called
ifeq ($(shell test "`dpkg -l gtk-doc-tools | grep ^ii`" && echo binary-indep),binary-indep)
indep_conf_flags += --enable-gtk-doc
endif
DEB_CONFIGURE_EXTRA_FLAGS += $(indep_conf_flags)
SUBDIRS =
if BUILD_GTK_DOC
SUBDIRS += reference
endif
DIST_SUBDIRS = reference
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in
This diff is collapsed.
---
short-description: GStreamer plugins from gstreamer-vaapi
...
# VAAPI Plugin
## Environment variables
GStreamer-VAAPI inspects a few of environment variables to define it
usage.
**GST_VAAPI_ALL_DRIVERS.**
This environment variable can be set, independently of its value, to
disable the drivers white list. By default only intel and mesa va
drivers are loaded if they are available. The rest are ignored. With
this environment variable defined, all the available va drivers are
loaded, even if they are deprecated.
**LIBVA_DRIVER_NAME.**
This environment variable can be set with the drivers name to load. For
example, intel's driver is `i915`, meanwhile mesa is `gallium`.
**LIBVA_DRIVERS_PATH.**
This environment variable can be set to a colon-separated list of paths
(or a semicolon-separated list on Windows). libva will scan these paths
for va drivers.
build_hotdoc = false
if meson.is_cross_build()
if get_option('doc').enabled()
error('Documentation enabled but building the doc while cross building is not supported yet.')
endif
message('Documentation not built as building it while cross building is not supported yet.')
subdir_done()
endif
required_hotdoc_extensions = ['gi-extension', 'gst-extension']
if gst_dep.type_name() == 'internal'
gst_proj = subproject('gstreamer')
plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator')
else
plugins_cache_generator = find_program(join_paths(gst_dep.get_pkgconfig_variable('libexecdir'), 'gstreamer-' + api_version, 'gst-plugins-doc-cache-generator'),
required: false)
endif
plugins_cache = join_paths(meson.current_source_dir(), 'gst_plugins_cache.json')
if plugins_cache_generator.found()
plugins_doc_dep = custom_target('vaapi-plugins-doc-cache',
command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', '@INPUT@'],
input: plugins,
output: 'gst_plugins_cache.json',
)
else
warning('GStreamer plugin inspector for documentation not found, can\'t update the cache')
endif
hotdoc_p = find_program('hotdoc', required: get_option('doc'))
if not hotdoc_p.found()
message('Hotdoc not found, not building the documentation')
subdir_done()
endif
build_hotdoc = true
hotdoc = import('hotdoc')
if not hotdoc.has_extensions(required_hotdoc_extensions)
if get_option('doc').enabled()
error('Documentation enabled but gi-extension missing')
endif
message('@0@ extensions not found, not building documentation'.format(required_hotdoc_extensions))
subdir_done()
endif
message('Plugins: @0@'.format(plugins))
libs_doc = []
plugins_doc = [hotdoc.generate_doc('vaapi',
project_version: api_version,
sitemap: 'sitemap.txt',
index: 'index.md',
gst_index: 'index.md',
gst_smart_index: true,
gst_c_sources: ['../gst/*/*.[ch]',],
gst_cache_file: plugins_cache,
gst_plugin_name: 'vaapi',
dependencies: [gstbase_dep, gstvideo_dep, gstallocators_dep, gstpbutils_dep,
libva_dep, gstlibvaapi_dep, gstgl_dep, libm] + plugins,
)]
SUBDIRS = libs plugins
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE = libs
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
DOC_SOURCE_DIR = $(top_srcdir)/gst-libs/gst/vaapi
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS = --type-init-func="g_type_init()"
# List files used by scanobj
SCANOBJ_TYPES = $(srcdir)/$(DOC_MODULE).core.types
SCANOBJ_TYPES += $(srcdir)/$(DOC_MODULE).x11.types
if USE_GLX
SCANOBJ_TYPES += $(srcdir)/$(DOC_MODULE).glx.types
endif
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS = --deprecated-guards="GST_VAAPI_DISABLE_DEPRECATED"
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=$(DOC_MODULE)
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS =
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS = \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(CAIRO_PREFIX)/share/gtk-doc/html/cairo \
--extra-dir=$(PANGO_PREFIX)/share/gtk-doc/html/pango
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB = $(top_srcdir)/gst-libs/gst/vaapi/*.h
CFILE_GLOB = $(top_srcdir)/gst-libs/gst/vaapi/*.c $(srcdir)/$(DOC_MODULE).types
# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES = \
gstvaapi_priv.h \
gstvaapicompat.h \
gstvaapidebug.h \
gstvaapidecoder_priv.h \
gstvaapidisplay_priv.h \
gstvaapidisplay_glx_priv.h \
gstvaapidisplay_x11_priv.h \
gstvaapimarshal.h \
gstvaapiobject_priv.h \
gstvaapiutils.h \
gstvaapiutils_glx.h \
gstvaapiutils_gst.h \
gstvaapiutils_x11.h \
$(NULL)
EXTRA_HFILES = \
gstvaapimarshal.c \
$(NULL)
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES = \
$(NULL)
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files = \
$(NULL)
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files = \
$(NULL)
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
INCLUDES = \
$(GLIB_CFLAGS) \
$(GST_CFLAGS) \
-I$(top_srcdir) \
-I$(top_srcdir)/gst-libs \
-I$(top_srcdir)/gst-libs/gst/vaapi
GTKDOC_LIBS = \
$(GLIB_LIBS) \
$(GST_LIBS) \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-$(GST_MAJORMINOR).la
GTKDOC_LIBS += \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-x11-$(GST_MAJORMINOR).la
if USE_GLX
GTKDOC_LIBS += \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-glx-$(GST_MAJORMINOR).la
endif
$(srcdir)/$(DOC_MODULE).types: $(SCANOBJ_TYPES)
cat $(SCANOBJ_TYPES) > $@
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += \
libs-docs.xml.in \
libs.core.types \
libs.x11.types \
libs.glx.types \
$(NULL)
DISTCLEANFILES = $(srcdir)/$(DOC_MODULE).types
BUILT_SOURCES = $(srcdir)/$(DOC_MODULE).types
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in lib-docs.xml
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>GStreamer VA-API Plugins @GST_MAJORMINOR@ Library Reference Manual</title>
</bookinfo>
<chapter>
<title>gst-plugins-vaapi Library</title>
<xi:include href="xml/gstvaapitypes.xml"/>
<xi:include href="xml/gstvaapivalue.xml"/>
<xi:include href="xml/gstvaapiparamspecs.xml"/>
<xi:include href="xml/gstvaapidisplay.xml"/>
<xi:include href="xml/gstvaapidisplay_x11.xml"/>
<xi:include href="xml/gstvaapidisplay_glx.xml"/>
<xi:include href="xml/gstvaapiwindow.xml"/>
<xi:include href="xml/gstvaapiwindow_x11.xml"/>
<xi:include href="xml/gstvaapiwindow_glx.xml"/>
<xi:include href="xml/gstvaapiobject.xml"/>
<xi:include href="xml/gstvaapisurface.xml"/>
<xi:include href="xml/gstvaapiimage.xml"/>
<xi:include href="xml/gstvaapiimageformat.xml"/>
<xi:include href="xml/gstvaapisubpicture.xml"/>
<xi:include href="xml/gstvaapitexture.xml"/>
<xi:include href="xml/gstvaapiprofile.xml"/>
<xi:include href="xml/gstvaapivideopool.xml"/>
<xi:include href="xml/gstvaapisurfacepool.xml"/>
<xi:include href="xml/gstvaapiimagepool.xml"/>
<xi:include href="xml/gstvaapivideobuffer.xml"/>
<xi:include href="xml/gstvaapicontext.xml"/>
<xi:include href="xml/gstvaapidecoder.xml"/>
<xi:include href="xml/gstvaapidecoder_ffmpeg.xml"/>
<xi:include href="xml/gstvaapisurfaceproxy.xml"/>
<xi:include href="xml/gstvaapivideosink.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>
This diff is collapsed.
gst_vaapi_context_get_type
gst_vaapi_decoder_get_type
gst_vaapi_decoder_ffmpeg_get_type
gst_vaapi_display_get_type
gst_vaapi_image_get_type
gst_vaapi_image_pool_get_type
gst_vaapi_object_get_type
gst_vaapi_subpicture_get_type
gst_vaapi_surface_get_type
gst_vaapi_surface_pool_get_type
gst_vaapi_surface_proxy_get_type
gst_vaapi_video_buffer_get_type
gst_vaapi_video_pool_get_type
gst_vaapi_video_sink_get_type
gst_vaapi_window_get_type
gst_vaapi_display_glx_get_type
gst_vaapi_texture_get_type
gst_vaapi_window_glx_get_type
gst_vaapi_display_x11_get_type
gst_vaapi_window_x11_get_type
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE = plugins
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
DOC_SOURCE_DIR = $(top_srcdir)/gst
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS = --type-init-func="gst_init(NULL, NULL)"
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS = --deprecated-guards="GST_VAAPI_DISABLE_DEPRECATED"
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=$(DOC_MODULE)
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS =
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS = \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(CAIRO_PREFIX)/share/gtk-doc/html/cairo \
--extra-dir=$(PANGO_PREFIX)/share/gtk-doc/html/pango
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB = $(top_srcdir)/gst/*/*.h
CFILE_GLOB = $(top_srcdir)/gst/*/*.c
# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES = \
$(NULL)
EXTRA_HFILES = \
$(NULL)
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES = \
$(NULL)
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files = \
$(NULL)
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files = \
$(NULL)
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
INCLUDES = \
-I$(top_srcdir) \
-I$(top_srcdir)/gst-libs \
-I$(top_srcdir)/gst-libs/gst/vaapi \
$(GLIB_CFLAGS) \
$(GST_CFLAGS) \
$(NULL)
GTKDOC_LIBS = \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-$(GST_MAJORMINOR).la \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-x11-$(GST_MAJORMINOR).la \
$(top_builddir)/gst/vaapidecode/libgstvaapidecode.la \
$(top_builddir)/gst/vaapiconvert/libgstvaapiconvert.la \
$(top_builddir)/gst/vaapisink/libgstvaapisink.la \
$(GLIB_LIBS) \
$(GST_LIBS) \
$(NULL)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += \
$(DOC_MODULE)-docs.xml.in \
$(NULL)
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in $(DOC_MODULE)-docs.xml
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>GStreamer VA-API Plugins @GST_MAJORMINOR@ Plugins Reference Manual</title>
</bookinfo>
<chapter>
<title>gst-plugins-vaapi Plugins</title>
<xi:include href="xml/gstvaapidecode.xml"/>
<xi:include href="xml/gstvaapiconvert.xml"/>
<xi:include href="xml/gstvaapisink.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>
<SECTION>
<FILE>gstvaapisink</FILE>
<TITLE>GstVaapiSink</TITLE>
GstVaapiSink
<SUBSECTION Standard>
GST_VAAPISINK
GST_IS_VAAPISINK
GST_TYPE_VAAPISINK
gst_vaapisink_get_type
GST_VAAPISINK_CLASS
GST_IS_VAAPISINK_CLASS
GST_VAAPISINK_GET_CLASS
</SECTION>
<SECTION>
<FILE>gstvaapidecode</FILE>
<TITLE>GstVaapiDecode</TITLE>
GstVaapiDecode
<SUBSECTION Standard>
GST_VAAPIDECODE
GST_IS_VAAPIDECODE
GST_TYPE_VAAPIDECODE
gst_vaapidecode_get_type
GST_VAAPIDECODE_CLASS
GST_IS_VAAPIDECODE_CLASS
GST_VAAPIDECODE_GET_CLASS
</SECTION>
<SECTION>
<FILE>gstvaapiconvert</FILE>
<TITLE>GstVaapiConvert</TITLE>
GstVaapiConvert
<SUBSECTION Standard>
GST_VAAPICONVERT
GST_IS_VAAPICONVERT
GST_TYPE_VAAPICONVERT
gst_vaapiconvert_get_type
GST_VAAPICONVERT_CLASS
GST_IS_VAAPICONVERT_CLASS
GST_VAAPICONVERT_GET_CLASS
</SECTION>
gst_vaapisink_get_type
gst_vaapidecode_get_type
gst_vaapiconvert_get_type
SUBDIRS = gst
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = vaapi
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = Makefile.in
lib_LTLIBRARIES = \
libgstvaapi-@GST_MAJORMINOR@.la \
libgstvaapi-x11-@GST_MAJORMINOR@.la \
$(NULL)
if USE_GLX
lib_LTLIBRARIES += libgstvaapi-glx-@GST_MAJORMINOR@.la
endif
libgstvaapi_includedir = \
$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/vaapi
libgstvaapi_ffmpeg_source_c = \
gstvaapidecoder_ffmpeg.c \
$(NULL)
libgstvaapi_ffmpeg_source_h = \
gstvaapidecoder_ffmpeg.h \
$(NULL)
libgstvaapi_ffmpeg_source_priv_h = \
$(NULL)
libgstvaapi_source_c = \
gstvaapicontext.c \
gstvaapidecoder.c \
gstvaapidisplay.c \
gstvaapiimage.c \
gstvaapiimageformat.c \
gstvaapiimagepool.c \
gstvaapimarshal.c \
gstvaapiobject.c \
gstvaapiparamspecs.c \
gstvaapiprofile.c \
gstvaapisubpicture.c \
gstvaapisurface.c \
gstvaapisurfacepool.c \
gstvaapisurfaceproxy.c \
gstvaapiutils.c \
gstvaapiutils_gst.c \
gstvaapivalue.c \
gstvaapivideobuffer.c \
gstvaapivideopool.c \
gstvaapivideosink.c \
gstvaapiwindow.c \
$(libgstvaapi_ffmpeg_source_c) \
$(NULL)
libgstvaapi_source_h = \
gstvaapicontext.h \
gstvaapidecoder.h \