diff options
author | Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> | 2016-10-27 12:31:49 +0200 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> | 2016-10-27 13:04:37 +0200 |
commit | 74a9f76d32e1777ee6de3a0a49a5978ef389869b (patch) | |
tree | 35012741dc250d6d827130fa14f6180ce238c7ce | |
parent | 0b46da2a8f70d17c2991f67e960e836ae8c74142 (diff) |
docs: replace vaapidecode with each codec
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.
-rw-r--r-- | docs/plugins/gstreamer-vaapi-plugins-docs.xml.in | 10 | ||||
-rw-r--r-- | docs/plugins/gstreamer-vaapi-plugins-sections.txt | 85 | ||||
-rw-r--r-- | gst/vaapi/Makefile.am | 1 | ||||
-rw-r--r-- | gst/vaapi/gstvaapidecode.c | 50 | ||||
-rw-r--r-- | gst/vaapi/gstvaapidecodebin.c | 6 | ||||
-rw-r--r-- | gst/vaapi/gstvaapidecodedoc.c | 254 |
6 files changed, 346 insertions, 60 deletions
diff --git a/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in b/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in index c9cb5fc1..5eec5ca8 100644 --- a/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in +++ b/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in @@ -11,8 +11,15 @@ <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> diff --git a/docs/plugins/gstreamer-vaapi-plugins-sections.txt b/docs/plugins/gstreamer-vaapi-plugins-sections.txt index e3bc8e40..2833db3d 100644 --- a/docs/plugins/gstreamer-vaapi-plugins-sections.txt +++ b/docs/plugins/gstreamer-vaapi-plugins-sections.txt @@ -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> diff --git a/gst/vaapi/Makefile.am b/gst/vaapi/Makefile.am index 016b3d92..90212480 100644 --- a/gst/vaapi/Makefile.am +++ b/gst/vaapi/Makefile.am @@ -43,6 +43,7 @@ endif libgstvaapi_source_c = \ gstvaapi.c \ gstvaapidecode.c \ + gstvaapidecodedoc.c \ gstvaapipluginbase.c \ gstvaapipluginutil.c \ gstvaapipostproc.c \ diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c index 6f844271..51001ef0 100644 --- a/gst/vaapi/gstvaapidecode.c +++ b/gst/vaapi/gstvaapidecode.c @@ -20,56 +20,6 @@ * 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" diff --git a/gst/vaapi/gstvaapidecodebin.c b/gst/vaapi/gstvaapidecodebin.c index 0e3b713c..92856146 100644 --- a/gst/vaapi/gstvaapidecodebin.c +++ b/gst/vaapi/gstvaapidecodebin.c @@ -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 index 00000000..aafe9fa6 --- /dev/null +++ b/gst/vaapi/gstvaapidecodedoc.c @@ -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> + */ |