docs: replace vaapidecode with each codec
authorVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Thu, 27 Oct 2016 10:31:49 +0000 (12:31 +0200)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Thu, 27 Oct 2016 11:04:37 +0000 (13:04 +0200)
In the spirit of the codec split, this patch removes the documentation of
vaapidecode and adds a page per each possible decoder.

Nonetheless, only those available in the compilation system are going to be
instrospected, because the rest are not registered.

docs/plugins/gstreamer-vaapi-plugins-docs.xml.in
docs/plugins/gstreamer-vaapi-plugins-sections.txt
gst/vaapi/Makefile.am
gst/vaapi/gstvaapidecode.c
gst/vaapi/gstvaapidecodebin.c
gst/vaapi/gstvaapidecodedoc.c [new file with mode: 0644]

index c9cb5fc..5eec5ca 100644 (file)
 
   <chapter>
     <title>gstreamer-vaapi Elements</title>
-    <xi:include href="xml/element-vaapidecode.xml"/>
     <xi:include href="xml/element-vaapijpegdec.xml"/>
+    <xi:include href="xml/element-vaapimpeg2dec.xml"/>
+    <xi:include href="xml/element-vaapimpeg4dec.xml"/>
+    <xi:include href="xml/element-vaapih263dec.xml"/>
+    <xi:include href="xml/element-vaapih264dec.xml"/>
+    <xi:include href="xml/element-vaapih265dec.xml"/>
+    <xi:include href="xml/element-vaapivc1dec.xml"/>
+    <xi:include href="xml/element-vaapivp8dec.xml"/>
+    <xi:include href="xml/element-vaapivp9dec.xml"/>
     <xi:include href="xml/element-vaapidecodebin.xml"/>
     <xi:include href="xml/element-vaapipostproc.xml"/>
     <xi:include href="xml/element-vaapisink.xml"/>
@@ -21,6 +28,7 @@
     <xi:include href="xml/element-vaapijpegenc.xml"/>
     <xi:include href="xml/element-vaapimpeg2enc.xml"/>
     <xi:include href="xml/element-vaapivp8enc.xml"/>
+    <xi:include href="xml/element-vaapivp9enc.xml"/>
   </chapter>
 
   <chapter>
index e3bc8e4..2833db3 100644 (file)
@@ -1,10 +1,4 @@
 <SECTION>
-<FILE>element-vaapidecode</FILE>
-<TITLE>vaapidecode</TITLE>
-<SUBSECTION Standard>
-GstVaapiDecode
-GstVaapiDecodeClass
-</SECTION>
 
 <SECTION>
 <FILE>element-vaapijpegdec</FILE>
@@ -15,6 +9,70 @@ GstVaapiDecode_jpegClass
 </SECTION>
 
 <SECTION>
+<FILE>element-vaapimpeg2dec</FILE>
+<TITLE>vaapimpeg2dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_mpeg2
+GstVaapiDecode_mpeg2Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapimpeg4dec</FILE>
+<TITLE>vaapimpeg4dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_mpeg4
+GstVaapiDecode_mpeg4Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapih263dec</FILE>
+<TITLE>vaapih263dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_h263
+GstVaapiDecode_h263Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapih264dec</FILE>
+<TITLE>vaapih264dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_h264
+GstVaapiDecode_h264Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapih265dec</FILE>
+<TITLE>vaapih265dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_h265
+GstVaapiDecode_h265Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapivc1dec</FILE>
+<TITLE>vaapivc1dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_vc1
+GstVaapiDecode_vc1Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapivp8dec</FILE>
+<TITLE>vaapivp8dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_vp8
+GstVaapiDecode_vp8Class
+</SECTION>
+
+<SECTION>
+<FILE>element-vaapivp9dec</FILE>
+<TITLE>vaapivp9dec</TITLE>
+<SUBSECTION Standard>
+GstVaapiDecode_vp9
+GstVaapiDecode_vp9Class
+</SECTION>
+
+<SECTION>
 <FILE>element-vaapidecodebin</FILE>
 <TITLE>vaapidecodebin</TITLE>
 <SUBSECTION Standard>
@@ -134,3 +192,18 @@ GstVaapiEncodeVP8
 GstVaapiEncodeVP8Class
 gst_vaapiencode_vp8_get_type
 </SECTION>
+
+<SECTION>
+<FILE>element-vaapivp9enc</FILE>
+<TITLE>vaapivp9enc</TITLE>
+<SUBSECTION Standard>
+GST_IS_VAAPIENCODE_VP9
+GST_IS_VAAPIENCODE_VP9_CLASS
+GST_TYPE_VAAPIENCODE_VP9
+GST_VAAPIENCODE_VP9
+GST_VAAPIENCODE_VP9_CLASS
+GST_VAAPIENCODE_VP9_GET_CLASS
+GstVaapiEncodeVP9
+GstVaapiEncodeVP9Class
+gst_vaapiencode_vp9_get_type
+</SECTION>
index 016b3d9..9021248 100644 (file)
@@ -43,6 +43,7 @@ endif
 libgstvaapi_source_c = \
        gstvaapi.c              \
        gstvaapidecode.c        \
+       gstvaapidecodedoc.c     \
        gstvaapipluginbase.c    \
        gstvaapipluginutil.c    \
        gstvaapipostproc.c      \
index 6f84427..51001ef 100644 (file)
  *  License along with this library; if not, write to the Free
  *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  *  Boston, MA 02110-1301 USA
-*/
-
-/**
- * SECTION:element-vaapidecode
- * @short_description: A VA-API based video decoder
- *
- * vaapidecode decodes from raw bitstreams to surfaces suitable for
- * the vaapisink or vaapipostproc elements using the installed <ulink
- * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
- * back-end.
- *
- * In the case of OpenGL based elements, the buffers have the
- * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
- * content of the VA-API surface into a GL texture.
- *
- * Also it can deliver normal video buffers that can be rendered or
- * processed by other elements, but the performance would be rather
- * bad.
- *
- * <refsect2>
- * <title>Example launch line</title>
- * |[
- * gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapidecode ! vaapisink
- * ]|
- * </refsect2>
- */
-
-/**
- * SECTION:element-vaapijpegdec
- * @short_description: A VA-API based JPEG image decoder
- *
- * vaapijpegdec decodes a JPEG image to surfaces suitable for the
- * vaapisink or vaapipostproc elements using the installed <ulink
- * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
- * back-end.
- *
- * In the case of OpenGL based elements, the buffers have the
- * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
- * content of the VA-API surface into a GL texture.
- *
- * Also it can deliver normal video buffers that can be rendered or
- * processed by other elements, but the performance would be rather
- * bad.
- *
- * <refsect2>
- * <title>Example launch line</title>
- * |[
- * gst-launch-1.0 filesrc location=~/image.jpeg ! jpegparse ! vaapijpegdec ! imagefreeze ! vaapisink
- * ]|
- * </refsect2>
  */
 
 #include "gstcompat.h"
index 0e3b713..9285614 100644 (file)
@@ -26,9 +26,9 @@
  * @short_description: A VA-API based video decoder with a
  * post-processor
  *
- * vaapidecodebin is similar #GstVaapiDecode, but it is composed by
- * the vaapidecode, a #GstQueue, and the #GstVaapiPostproc, if it is
- * available and functional in the setup.
+ * vaapidecodebin is similar vaapi{CODEC}dec, but it is composed by
+ * the unregistered vaapidecode, a #GstQueue, and the
+ * #GstVaapiPostproc, if it is available and functional in the setup.
  *
  * It offers the functionality of #GstVaapiDecode and the many options
  * of #GstVaapiPostproc.
diff --git a/gst/vaapi/gstvaapidecodedoc.c b/gst/vaapi/gstvaapidecodedoc.c
new file mode 100644 (file)
index 0000000..aafe9fa
--- /dev/null
@@ -0,0 +1,254 @@
+/*
+ *  gstvaapidecodedoc.c - VA-API video decoders documentation
+ *
+ *  Copyright (C) 2016 Intel Corporation
+ *    Author: Victor Jaquez <victorx.jaquez@intel.com>
+ *
+ *  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
+ */
+
+/**
+ * SECTION:element-vaapijpegdec
+ * @short_description: A VA-API based JPEG image decoder
+ *
+ * vaapijpegdec decodes a JPEG image to surfaces suitable for the
+ * vaapisink or vaapipostproc elements using the installed <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/image.jpeg ! jpegparse ! vaapijpegdec ! imagefreeze ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapimpeg2dec
+ * @short_description: A VA-API based MPEG2 video decoder
+ *
+ * vaapimpeg2dec decodes from MPEG2 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/sample.mpg ! mpegpsdemux ! vaapimpeg2dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapimpeg4dec
+ * @short_description: A VA-API based MPEG4 video decoder
+ *
+ * vaapimpeg4dec decodes from MPEG4 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/sample.mpeg4 ! mpeg4videoparse ! vaapimpeg4dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapih263dec
+ * @short_description: A VA-API based H263 video decoder
+ *
+ * vaapih263dec decodes from H263 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/sample.h263 ! h263parse ! vaapih263dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapih264dec
+ * @short_description: A VA-API based H264 video decoder
+ *
+ * vaapih264dec decodes from H264 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapih264dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapih265dec
+ * @short_description: A VA-API based H265 video decoder
+ *
+ * vaapih265dec decodes from H265 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=./sample.bin ! h265parse ! vaapih265dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapivc1dec
+ * @short_description: A VA-API based VC1 video decoder
+ *
+ * vaapivc1dec decodes from VC1 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=~/elephants_dream.wmv  ! asfdemux ! vaapivc1dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapivp8dec
+ * @short_description: A VA-API based VP8 video decoder
+ *
+ * vaapivp8dec decodes from VP8 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=./sample.webm ! matroskademux ! vaapivp8dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */
+
+/**
+ * SECTION:element-vaapivp9dec
+ * @short_description: A VA-API based VP9 video decoder
+ *
+ * vaapivp9dec decodes from VP9 bitstreams to surfaces suitable
+ * for the vaapisink or vaapipostproc elements using the installed
+ * <ulink
+ * url="https://wiki.freedesktop.org/www/Software/vaapi/">VA-API</ulink>
+ * back-end.
+ *
+ * In the case of OpenGL based elements, the buffers have the
+ * #GstVideoGLTextureUploadMeta meta, which efficiently copies the
+ * content of the VA-API surface into a GL texture.
+ *
+ * Also it can deliver normal video buffers that can be rendered or
+ * processed by other elements, but the performance would be rather
+ * bad.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 filesrc location=./sample.vp9.webm ! ivfparse ! vaapivp9dec ! vaapisink
+ * ]|
+ * </refsect2>
+ */