diff --git a/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c
index 87160ffdcb..82740d0f98 100644
--- a/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c
+++ b/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c
@@ -39,6 +39,25 @@
  *
  */
 
+/**
+ * SECTION:element-vah264lpenc
+ * @title: vah264lpenc
+ * @short_description: A VA-API based H264 low power video encoder
+ *
+ * vah264lpenc encodes raw video VA surfaces into H.264 bitstreams using
+ * the installed and chosen [VA-API](https://01.org/linuxmedia/vaapi)
+ * driver.
+ *
+ * The raw video frames in main memory can be imported into VA surfaces.
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 videotestsrc num-buffers=60 ! timeoverlay ! vah264lpenc ! h264parse ! mp4mux ! filesink location=test.mp4
+ * ```
+ *
+ * Since: 1.22
+ */
+
  /* @TODO:
   * 1. Look ahead, which can optimize the slice type and QP.
   * 2. Field encoding.
diff --git a/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c
index 3340d9815d..7e1360660b 100644
--- a/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c
+++ b/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c
@@ -38,6 +38,26 @@
  *
  */
 
+/**
+ * SECTION:element-vah265lpenc
+ * @title: vah265lpenc
+ * @short_description: A VA-API based H265 low power video encoder
+ *
+ * vah265lpenc encodes raw video VA surfaces into H.265 bitstreams using
+ * the installed and chosen [VA-API](https://01.org/linuxmedia/vaapi)
+ * driver.
+ *
+ * The raw video frames in main memory can be imported into VA surfaces.
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 videotestsrc num-buffers=60 ! timeoverlay ! vah265lpenc ! h265parse ! mp4mux ! filesink location=test.mp4
+ * ```
+ *
+ * Since: 1.22
+ *
+ */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
diff --git a/subprojects/gst-plugins-bad/sys/va/gstvavp8dec.c b/subprojects/gst-plugins-bad/sys/va/gstvavp8dec.c
index 875233dd22..6089b59d89 100644
--- a/subprojects/gst-plugins-bad/sys/va/gstvavp8dec.c
+++ b/subprojects/gst-plugins-bad/sys/va/gstvavp8dec.c
@@ -495,6 +495,22 @@ _register_debug_category (gpointer data)
   return NULL;
 }
 
+/**
+ * SECTION:element-vavp8alphadecodebin
+ * @title: vavp8alphadecodebin
+ * @short_description: A VA-API based VP8 video decoder
+ *
+ * Wraps two copies vavp8enc to decode a VP8 video with an alpha layer
+ * typically carried in a WebM file
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=sample.webm ! parsebin ! vavp8alphadecodebin ! autovideosink
+ * ```
+ *
+ * Since: 1.26
+ */
+
 static void
 gst_va_codec_vp8_alpha_decode_bin_class_init (GstVaCodecAlphaDecodeBinClass
     * klass, gchar * decoder_name)
diff --git a/subprojects/gst-plugins-bad/sys/va/gstvavp9dec.c b/subprojects/gst-plugins-bad/sys/va/gstvavp9dec.c
index ac659eee3b..7388ddb9fb 100644
--- a/subprojects/gst-plugins-bad/sys/va/gstvavp9dec.c
+++ b/subprojects/gst-plugins-bad/sys/va/gstvavp9dec.c
@@ -693,6 +693,22 @@ _register_debug_category (gpointer data)
   return NULL;
 }
 
+/**
+ * SECTION:element-vavp9alphadecodebin
+ * @title: vavp9alphadecodebin
+ * @short_description: A VA-API based VP9 video decoder
+ *
+ * Wraps two copies vavp9enc to decode a VP9 video with an alpha layer
+ * typically carried in a WebM file
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=sample.webm ! parsebin ! vavp9alphadecodebin ! autovideosink
+ * ```
+ *
+ * Since: 1.26
+ */
+
 static void
 gst_va_codec_vp9_alpha_decode_bin_class_init (GstVaCodecAlphaDecodeBinClass
     * klass, gchar * decoder_name)