diff --git a/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in b/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in index 99332e67d9..5070eb6e8f 100644 --- a/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in +++ b/docs/plugins/gstreamer-vaapi-plugins-docs.xml.in @@ -9,11 +9,22 @@ GStreamer VA-API Plugins @GST_API_VERSION@ Plugins Reference Manual + + gstreamer-vaapi Elements + + + + + + + + + + + gstreamer-vaapi Plugins - - - + diff --git a/docs/plugins/gstreamer-vaapi-plugins-sections.txt b/docs/plugins/gstreamer-vaapi-plugins-sections.txt new file mode 100644 index 0000000000..c18e462177 --- /dev/null +++ b/docs/plugins/gstreamer-vaapi-plugins-sections.txt @@ -0,0 +1,135 @@ +
+element-vaapidecode +vaapidecode + +GST_IS_VAAPIDECODE +GST_IS_VAAPIDECODE_CLASS +GST_TYPE_VAAPIDECODE +GST_VAAPIDECODE +GST_VAAPIDECODE_CLASS +GST_VAAPIDECODE_GET_CLASS +GstVaapiDecode +GstVaapiDecodeClass +gst_vaapidecode_get_type +
+ +
+element-vaapidecodebin +vaapidecodebin + +GST_IS_AUTO_DETECT +GST_IS_AUTO_DETECT_CLASS +GST_TYPE_VAAPI_DECODE_BIN +GST_VAAPI_DECODE_BIN +GST_VAAPI_DECODE_BIN_CLASS +GST_VAAPI_DECODE_BIN_GET_CLASS +GstVaapiDecodeBin +GstVaapiDecodeBinClass +gst_vaapi_decode_bin_get_type +
+ +
+element-vaapipostproc +vaapipostproc +GstVaapiDeinterlaceMode + +GST_IS_VAAPIPOSTPROC +GST_IS_VAAPIPOSTPROC_CLASS +GST_TYPE_VAAPIPOSTPROC +GST_VAAPIPOSTPROC +GST_VAAPIPOSTPROC_CLASS +GST_VAAPIPOSTPROC_GET_CLASS +GstVaapiPostproc +GstVaapiPostprocClass +gst_vaapipostproc_get_type +
+ +
+element-vaapisink +vaapisink + +GST_IS_VAAPISINK +GST_IS_VAAPISINK_CLASS +GST_TYPE_VAAPISINK +GST_VAAPISINK +GST_VAAPISINK_CLASS +GST_VAAPISINK_GET_CLASS +GstVaapiSink +GstVaapiSinkClass +gst_vaapisink_get_type +
+ +
+element-vaapiencode_h264 +vaapiencode_h264 + +GST_IS_VAAPIENCODE_H264 +GST_IS_VAAPIENCODE_H264_CLASS +GST_TYPE_VAAPIENCODE_H264 +GST_VAAPIENCODE_H264 +GST_VAAPIENCODE_H264_CLASS +GST_VAAPIENCODE_H264_GET_CLASS +GstVaapiEncodeH264 +GstVaapiEncodeH264Class +gst_vaapiencode_h264_get_type +
+ +
+element-vaapiencode_h265 +vaapiencode_h265 + +GST_IS_VAAPIENCODE_H265 +GST_IS_VAAPIENCODE_H265_CLASS +GST_TYPE_VAAPIENCODE_H265 +GST_VAAPIENCODE_H265 +GST_VAAPIENCODE_H265_CLASS +GST_VAAPIENCODE_H265_GET_CLASS +GstVaapiEncodeH265 +GstVaapiEncodeH265Class +gst_vaapiencode_h265_get_type +
+ +
+element-vaapiencode_jpeg +vaapiencode_jpeg + +GST_IS_VAAPIENCODE_JPEG +GST_IS_VAAPIENCODE_JPEG_CLASS +GST_TYPE_VAAPIENCODE_JPEG +GST_VAAPIENCODE_JPEG +GST_VAAPIENCODE_JPEG_CLASS +GST_VAAPIENCODE_JPEG_GET_CLASS +GstVaapiEncodeJpeg +GstVaapiEncodeJpegClass +gst_vaapiencode_jpeg_get_type +
+ +
+element-vaapiencode_mpeg2 +vaapiencode_mpeg2 + +GST_IS_VAAPIENCODE_MPEG2 +GST_IS_VAAPIENCODE_MPEG2_CLASS +GST_TYPE_VAAPIENCODE_MPEG2 +GST_VAAPIENCODE_MPEG2 +GST_VAAPIENCODE_MPEG2_CLASS +GST_VAAPIENCODE_MPEG2_GET_CLASS +GstVaapiEncodeMpeg2 +GstVaapiEncodeMpeg2Class +gst_vaapiencode_mpeg2_get_type +
+ +
+element-vaapiencode_vp8 +vaapiencode_vp8 + +GST_IS_VAAPIENCODE_VP8 +GST_IS_VAAPIENCODE_VP8_CLASS +GST_TYPE_VAAPIENCODE_VP8 +GST_VAAPIENCODE_VP8 +GST_VAAPIENCODE_VP8_CLASS +GST_VAAPIENCODE_VP8_GET_CLASS +GstVaapiEncodeVP8 +GstVaapiEncodeVP8Class +gst_vaapiencode_vp8_get_type +
diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c index de61d14c4f..3fa3c17576 100644 --- a/gst/vaapi/gstvaapidecode.c +++ b/gst/vaapi/gstvaapidecode.c @@ -23,11 +23,28 @@ */ /** - * SECTION:gstvaapidecode + * SECTION:element-vaapidecode * @short_description: A VA-API based video decoder * * vaapidecode decodes from raw bitstreams to surfaces suitable for - * the vaapisink element. + * the vaapisink or vaapipostproc elements using the installed VA-API + * 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. + * + * + * Example launch line + * |[ + * gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapidecode ! vaapisink + * ]| + * */ #include "gstcompat.h" diff --git a/gst/vaapi/gstvaapidecodebin.c b/gst/vaapi/gstvaapidecodebin.c index 9ab354f93f..5eaee5e7f4 100644 --- a/gst/vaapi/gstvaapidecodebin.c +++ b/gst/vaapi/gstvaapidecodebin.c @@ -21,6 +21,26 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapidecodebin + * @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. + * + * It offers the functionality of #GstVaapiDecode and the many options + * of #GstVaapiPostproc. + * + * + * Example launch line + * |[ + * gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapidecodebin ! vaapisink + * ]| + * + */ + #include "gstcompat.h" #include #include @@ -32,7 +52,7 @@ #include "gstvaapipluginbase.h" #define GST_PLUGIN_NAME "vaapidecodebin" -#define GST_PLUGIN_DESC "A Bin of VA-API elements: vaapidecode ! queue ! vaapipostproc" +#define GST_PLUGIN_DESC "A VA-API based bin with a decoder and a postprocessor" GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapi_decode_bin); #define GST_CAT_DEFAULT gst_debug_vaapi_decode_bin diff --git a/gst/vaapi/gstvaapiencode_h264.c b/gst/vaapi/gstvaapiencode_h264.c index 7800786150..1c37ca7b39 100644 --- a/gst/vaapi/gstvaapiencode_h264.c +++ b/gst/vaapi/gstvaapiencode_h264.c @@ -21,6 +21,20 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapiencode_h264 + * @short_description: A VA-API based H.264 video encoder + * + * Encodes raw video streams into H.264 bitstreams. + * + * + * Example launch line + * |[ + * gst-launch-1.0 -ev videotestsrc num-buffers=60 ! timeoverlay ! vaapiencode_h264 ! mp4mux ! filesink location=test.mp4 + * ]| + * + */ + #include "gstcompat.h" #include #include diff --git a/gst/vaapi/gstvaapiencode_h265.c b/gst/vaapi/gstvaapiencode_h265.c index 964048a54b..f7324451fe 100644 --- a/gst/vaapi/gstvaapiencode_h265.c +++ b/gst/vaapi/gstvaapiencode_h265.c @@ -20,6 +20,20 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapiencode_h265 + * @short_description: A VA-API based HEVC video encoder + * + * Encodes raw video streams into HEVC bitstreams. + * + * + * Example launch line + * |[ + * gst-launch-1.0 -ev videotestsrc num-buffers=60 ! timeoverlay ! vaapiencode_h265 ! matroskamux ! filesink location=test.mkv + * ]| + * + */ + #include "gstcompat.h" #include #include diff --git a/gst/vaapi/gstvaapiencode_jpeg.c b/gst/vaapi/gstvaapiencode_jpeg.c index d9dd34510a..086d155c7c 100644 --- a/gst/vaapi/gstvaapiencode_jpeg.c +++ b/gst/vaapi/gstvaapiencode_jpeg.c @@ -20,6 +20,20 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapiencode_jpeg + * @short_description: A VA-API based JPEG image encoder + * + * Encodes raw images into JPEG images. + * + * + * Example launch line + * |[ + * gst-launch-1.0 -ev videotestsrc num-buffers=1 ! timeoverlay ! vaapiencode_jpeg ! filesink location=test.jpg + * ]| + * + */ + #include "gstcompat.h" #include #include diff --git a/gst/vaapi/gstvaapiencode_mpeg2.c b/gst/vaapi/gstvaapiencode_mpeg2.c index 5584c60185..9f2a23bb43 100644 --- a/gst/vaapi/gstvaapiencode_mpeg2.c +++ b/gst/vaapi/gstvaapiencode_mpeg2.c @@ -21,6 +21,20 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapiencode_mpeg2 + * @short_description: A VA-API based MPEG2 video encoder + * + * Encodes raw video streams into MPEG2 bitstreams. + * + * + * Example launch line + * |[ + * gst-launch-1.0 -ev videotestsrc num-buffers=60 ! timeoverlay ! vaapiencode_mpeg2 ! matroskamux ! filesink location=test.mkv + * ]| + * + */ + #include "gstcompat.h" #include #include diff --git a/gst/vaapi/gstvaapiencode_vp8.c b/gst/vaapi/gstvaapiencode_vp8.c index 366cdfd894..276a58400e 100644 --- a/gst/vaapi/gstvaapiencode_vp8.c +++ b/gst/vaapi/gstvaapiencode_vp8.c @@ -20,6 +20,20 @@ * Boston, MA 02110-1301 USA */ +/** + * SECTION:element-vaapiencode_vp8 + * @short_description: A VA-API based VP8 video encoder + * + * Encodes raw video streams into VP8 bitstreams. + * + * + * Example launch line + * |[ + * gst-launch-1.0 -ev videotestsrc num-buffers=60 ! timeoverlay ! vaapiencode_vp8 ! matroskamux ! filesink location=test.mkv + * ]| + * + */ + #include "gstcompat.h" #include #include diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index 9583c27eae..7d968a4a91 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -21,12 +21,18 @@ */ /** - * SECTION:gstvaapipostproc - * @short_description: A video postprocessing filter + * SECTION:element-vaapipostproc + * @short_description: A VA-API base video postprocessing filter * * vaapipostproc consists in various postprocessing algorithms to be - * applied to VA surfaces. So far, only basic bob deinterlacing is - * implemented. + * applied to VA surfaces. + * + * + * Example launch line + * |[ + * gst-launch-1.0 videotestsrc ! vaapipostproc ! video/x-raw width=1920, height=1080 ! vaapisink + * ]| + * */ #include "gstcompat.h" @@ -39,7 +45,7 @@ #include "gstvaapivideomemory.h" #define GST_PLUGIN_NAME "vaapipostproc" -#define GST_PLUGIN_DESC "A video postprocessing filter" +#define GST_PLUGIN_DESC "A VA-API video postprocessing filter" GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapipostproc); #define GST_CAT_DEFAULT gst_debug_vaapipostproc diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index f7fb5a2f6a..c73b2bb7c0 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -23,12 +23,19 @@ */ /** - * SECTION:gstvaapisink - * @short_description: A VA-API based videosink + * SECTION:element-vaapisink + * @short_description: A VA-API based video sink * * vaapisink renders video frames to a drawable (X #Window) on a local * display using the Video Acceleration (VA) API. The element will * create its own internal window and render into it. + * + * + * Example launch line + * |[ + * gst-launch-1.0 videotestsrc ! vaapisink + * ]| + * */ #include "gstcompat.h"