Update plugin docs and add more plugins
authorTim-Philipp Müller <tim@centricular.com>
Fri, 19 Jun 2020 14:21:56 +0000 (15:21 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 19 Jun 2020 14:21:56 +0000 (15:21 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>

docs/gst_plugins_cache.json
gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
gst-libs/gst/vaapi/gstvaapiencoder_vp9.c

index e1a07b8..cab02a4 100644 (file)
@@ -25,7 +25,7 @@
                         "presence": "always"
                     },
                     "src": {
-                        "caps": "video/x-raw(memory:VASurface):\n         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n\nvideo/x-raw(meta:GstVideoGLTextureUploadMeta):\n         format: { RGBA, BGRA }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\nvideo/x-raw:\n         format: { I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, RGB10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, P012_BE, P012_LE, I420_12BE, I420_12LE, Y212_BE, Y212_LE, I422_12BE, I422_12LE, Y412_BE, Y412_LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40, Y444_16BE, Y444_16LE, P016_BE, P016_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n",
+                        "caps": "video/x-raw(memory:VASurface):\n         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n\nvideo/x-raw(meta:GstVideoGLTextureUploadMeta):\n         format: { RGBA, BGRA }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\nvideo/x-raw:\n         format: { AYUV64, ARGB64, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n",
                         "direction": "src",
                         "presence": "always"
                     }
                 "properties": {
                     "async-handling": {
                         "blurb": "The bin will handle Asynchronous state changes",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "deinterlace-method": {
                         "blurb": "Deinterlace method to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "none (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiDeinterlaceMethod",
                         "writable": true
                     },
                     "disable-vpp": {
                         "blurb": "Disable Video Post Processing (No support for run time disabling)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "max-size-buffers": {
                         "blurb": "Max. number of buffers in the queue (0=disable)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "-1",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "max-size-bytes": {
                         "blurb": "Max. amount of data in the queue (bytes, 0=disable)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "-1",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "max-size-time": {
                         "blurb": "Max. amount of data in the queue (in ns, 0=disable)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "18446744073709551615",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint64",
                         "writable": true
                     },
                     "message-forward": {
                         "blurb": "Forwards all children messages",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                 "properties": {
                     "base-only": {
                         "blurb": "Drop any NAL unit not defined in Annex.A",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "low-latency": {
                         "blurb": "When enabled, frames will be pushed as soon as they are available. It might violate the H.264 spec.",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "qos": {
                         "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                 "properties": {
                     "bitrate": {
                         "blurb": "The desired bitrate expressed in kbps (0: auto-calculate)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2048000",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "cabac": {
                         "blurb": "Enable CABAC entropy coding mode",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "compliance-mode": {
                         "blurb": "Tune Encode quality/performance by relaxing specification compliance restrictions",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "strict (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiEncoderH264ComplianceMode",
                         "writable": true
                     },
                     "cpb-length": {
                         "blurb": "Length of the CPB buffer in milliseconds",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1500",
                         "max": "10000",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "dct8x8": {
                         "blurb": "Enable adaptive use of 8x8 transforms in I-frames",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "default-roi-delta-qp": {
                         "blurb": "The default delta-qp to apply to each Region of Interest(lower value means higher-quality, higher value means lower-quality)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "-10",
                         "max": "10",
                         "min": "-10",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint",
                         "writable": true
                     },
                     "init-qp": {
                         "blurb": "Initial quantizer value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "26",
                         "max": "51",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "keyframe-period": {
                         "blurb": "Maximal distance between two keyframes (0: auto-calculate)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "30",
                         "max": "-1",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "max-bframes": {
                         "blurb": "Number of B-frames between I and P",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "10",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "max-qp": {
                         "blurb": "Maximum quantizer value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "51",
                         "max": "51",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "mbbrc": {
                         "blurb": "Macroblock level Bitrate Control",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "auto (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiEncoderMbbrc",
                         "writable": true
                     },
+                    "min-force-key-unit-interval": {
+                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint64",
+                        "writable": true
+                    },
                     "min-qp": {
                         "blurb": "Minimum quantizer value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "51",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "num-slices": {
                         "blurb": "Number of slices per frame",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "200",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "num-views": {
                         "blurb": "Number of Views for MVC encoding",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "10",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "prediction-type": {
                         "blurb": "Reference Picture Selection Modes",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "default (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiEncoderH264PredictionType",
                         "writable": true
                     },
                     "qos": {
                         "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "qp-ib": {
                         "blurb": "Difference of QP between I and B frame (available only on CQP)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "51",
                         "min": "-51",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint",
                         "writable": true
                     },
                     "qp-ip": {
                         "blurb": "Difference of QP between I and P frame (available only on CQP)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "51",
                         "min": "-51",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint",
                         "writable": true
                     },
                     "quality-factor": {
                         "blurb": "quality factor for ICQ/QVBR bitrate control mode(low value means higher-quality, higher value means lower-quality)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "26",
                         "max": "51",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "quality-level": {
                         "blurb": "Encoding Quality Level (lower value means higher-quality/slow-encode,  higher value means lower-quality/fast-encode)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "4",
                         "max": "7",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "rate-control": {
                         "blurb": "Rate control mode",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "cqp (1)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiRateControlH264",
                         "writable": true
                     },
                     "refs": {
                         "blurb": "Number of reference frames",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "8",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "target-percentage": {
                         "blurb": "The desired target percentage of bitrate for variable rate controls.",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "70",
                         "max": "100",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "temporal-levels": {
                         "blurb": "Number of temporal levels in the encoded stream ",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "4",
                         "min": "1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "trellis": {
                         "blurb": "The Trellis Quantization Method of Encoder",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "tune": {
                         "blurb": "Encoder tuning option",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "none (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiEncoderTuneH264",
                         "writable": true
                     },
                     "view-ids": {
                         "blurb": "Set of View Ids used for MVC encoding",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstValueArray",
                         "writable": true
                 "properties": {
                     "qos": {
                         "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                 "properties": {
                     "qos": {
                         "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    }
+                },
+                "rank": "primary"
+            },
+            "vaapimpeg2enc": {
+                "author": "Guangxin Xu <guangxin.xu@intel.com>",
+                "description": "A VA-API based MPEG-2 video encoder",
+                "hierarchy": [
+                    "GstVaapiEncodeMpeg2",
+                    "GstVaapiEncode",
+                    "GstVideoEncoder",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "interfaces": [
+                    "GstPreset"
+                ],
+                "klass": "Codec/Encoder/Video/Hardware",
+                "long-name": "VA-API MPEG-2 encoder",
+                "pad-templates": {
+                    "sink": {
+                        "caps": "video/x-raw:\n         format: { NV12, YV12, I420 }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n\nvideo/x-raw(memory:VASurface):\n         format: { NV12, YV12, I420 }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: progressive\n",
+                        "direction": "sink",
+                        "presence": "always"
+                    },
+                    "src": {
+                        "caps": "video/mpeg:\n    mpegversion: 2\n   systemstream: false\n",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "bitrate": {
+                        "blurb": "The desired bitrate expressed in kbps (0: auto-calculate)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "2048000",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "default-roi-delta-qp": {
+                        "blurb": "The default delta-qp to apply to each Region of Interest(lower value means higher-quality, higher value means lower-quality)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "-10",
+                        "max": "10",
+                        "min": "-10",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gint",
+                        "writable": true
+                    },
+                    "keyframe-period": {
+                        "blurb": "Maximal distance between two keyframes (0: auto-calculate)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "30",
+                        "max": "-1",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "max-bframes": {
+                        "blurb": "Number of B-frames between I and P",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "16",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "min-force-key-unit-interval": {
+                        "blurb": "Minimum interval between force-keyunit requests in nanoseconds",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint64",
+                        "writable": true
+                    },
+                    "qos": {
+                        "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
+                    },
+                    "quality-level": {
+                        "blurb": "Encoding Quality Level (lower value means higher-quality/slow-encode,  higher value means lower-quality/fast-encode)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "4",
+                        "max": "7",
+                        "min": "1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "quantizer": {
+                        "blurb": "Constant quantizer (if rate-control mode is CQP)",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "8",
+                        "max": "62",
+                        "min": "2",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "rate-control": {
+                        "blurb": "Rate control mode",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "cqp (1)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstVaapiRateControlMPEG2",
+                        "writable": true
+                    },
+                    "target-percentage": {
+                        "blurb": "The desired target percentage of bitrate for variable rate controls.",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "70",
+                        "max": "100",
+                        "min": "1",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "guint",
+                        "writable": true
+                    },
+                    "trellis": {
+                        "blurb": "The Trellis Quantization Method of Encoder",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "false",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "gboolean",
+                        "writable": true
+                    },
+                    "tune": {
+                        "blurb": "Encoder tuning option",
+                        "conditionally-available": false,
+                        "construct": false,
+                        "construct-only": false,
+                        "controllable": false,
+                        "default": "none (0)",
+                        "mutable": "null",
+                        "readable": true,
+                        "type": "GstVaapiEncoderTuneMPEG2",
+                        "writable": true
                     }
                 },
                 "rank": "primary"
                 "properties": {
                     "brightness": {
                         "blurb": "The color brightness value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "1",
                         "min": "-1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "contrast": {
                         "blurb": "The color contrast value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "2",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "crop-bottom": {
                         "blurb": "Pixels to crop at bottom",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "crop-left": {
                         "blurb": "Pixels to crop at left",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "crop-right": {
                         "blurb": "Pixels to crop at right",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "crop-top": {
                         "blurb": "Pixels to crop at top",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "deinterlace-method": {
                         "blurb": "Deinterlace method to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "bob (1)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiDeinterlaceMethod",
                         "writable": true
                     },
                     "deinterlace-mode": {
                         "blurb": "Deinterlace mode to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "auto (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiDeinterlaceMode",
                         "writable": true
                     },
                     "denoise": {
                         "blurb": "The level of denoising to apply",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "1",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "force-aspect-ratio": {
                         "blurb": "When enabled, scaling will respect original aspect ratio",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "format": {
                         "blurb": "The forced output pixel format",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "encoded (1)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVideoFormat",
                         "writable": true
                     },
                     "hdr-tone-map": {
                         "blurb": "Apply HDR tone mapping algorithm",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "auto (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiHDRToneMap",
                         "writable": true
                     },
                     "height": {
                         "blurb": "Forced output height",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "hue": {
                         "blurb": "The color hue value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "180",
                         "min": "-180",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "qos": {
                         "blurb": "Handle Quality-of-Service events",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "saturation": {
                         "blurb": "The color saturation value",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "2",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "scale-method": {
                         "blurb": "Scaling method to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "default (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiScaleMethod",
                         "writable": true
                     },
                     "sharpen": {
                         "blurb": "The level of sharpening/blurring to apply",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "1",
                         "min": "-1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "skin-tone-enhancement": {
                         "blurb": "Apply the skin tone enhancement algorithm",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "skin-tone-enhancement-level": {
                         "blurb": "Apply the skin tone enhancement algorithm with specified level",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "3",
                         "max": "9",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "video-direction": {
                         "blurb": "Video direction: rotation and flipping",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "identity (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVideoOrientationMethod",
                         "writable": true
                     },
                     "width": {
                         "blurb": "Forced output width",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "2147483647",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                 "long-name": "VA-API sink",
                 "pad-templates": {
                     "sink": {
-                        "caps": "video/x-raw(memory:VASurface):\n         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:VASurface, meta:GstVideoOverlayComposition):\n         format: { ENCODED, NV12, I420, YV12, P010_10LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(meta:GstVideoOverlayComposition):\n         format: { I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, RGB10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, P012_BE, P012_LE, I420_12BE, I420_12LE, Y212_BE, Y212_LE, I422_12BE, I422_12LE, Y412_BE, Y412_LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40, Y444_16BE, Y444_16LE, P016_BE, P016_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n         format: { I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, RGB10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, P012_BE, P012_LE, I420_12BE, I420_12LE, Y212_BE, Y212_LE, I422_12BE, I422_12LE, Y412_BE, Y412_LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40, Y444_16BE, Y444_16LE, P016_BE, P016_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
+                        "caps": "video/x-raw(memory:VASurface):\n         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:VASurface, meta:GstVideoOverlayComposition):\n         format: { ENCODED, NV12, I420, YV12, P010_10LE }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(meta:GstVideoOverlayComposition):\n         format: { AYUV64, ARGB64, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n         format: { AYUV64, ARGB64, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n          width: [ 1, 2147483647 ]\n         height: [ 1, 2147483647 ]\n      framerate: [ 0/1, 2147483647/1 ]\n",
                         "direction": "sink",
                         "presence": "always"
                     }
                 "properties": {
                     "async": {
                         "blurb": "Go asynchronously to PAUSED",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "blocksize": {
                         "blurb": "Size in bytes to pull per buffer (0 = default)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "4096",
                         "max": "-1",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint",
                         "writable": true
                     },
                     "brightness": {
                         "blurb": "The display brightness value",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "1",
                         "min": "-1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "contrast": {
                         "blurb": "The display contrast value",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "2",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "display": {
                         "blurb": "display type to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "any (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiDisplayType",
                         "writable": true
                     },
                     "display-name": {
                         "blurb": "display name to use",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "NULL",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
                         "writable": true
                     },
                     "enable-last-sample": {
                         "blurb": "Enable the last-sample property",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "force-aspect-ratio": {
                         "blurb": "When enabled, scaling will respect original aspect ratio",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "fullscreen": {
                         "blurb": "Requests window in fullscreen state",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "hue": {
                         "blurb": "The display hue value",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "180",
                         "min": "-180",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "last-sample": {
                         "blurb": "The last sample received in the sink",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstSample",
                         "writable": false
                     },
                     "max-bitrate": {
                         "blurb": "The maximum bits per second to render (0 = disabled)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "18446744073709551615",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint64",
                         "writable": true
                     },
                     "max-lateness": {
                         "blurb": "Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "5000000",
                         "max": "9223372036854775807",
                         "min": "-1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint64",
                         "writable": true
                     },
                     "processing-deadline": {
                         "blurb": "Maximum processing time for a buffer in nanoseconds",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "15000000",
                         "max": "18446744073709551615",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint64",
                         "writable": true
                     },
                     "qos": {
                         "blurb": "Generate Quality-of-Service events upstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "render-delay": {
                         "blurb": "Additional render delay of the sink in nanoseconds",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "18446744073709551615",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint64",
                         "writable": true
                     },
                     "rotation": {
                         "blurb": "The display rotation mode",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0 (0)",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstVaapiRotation",
                         "writable": true
                     },
                     "saturation": {
                         "blurb": "The display saturation value",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "1",
                         "max": "2",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gfloat",
                         "writable": true
                     },
                     "show-preroll-frame": {
                         "blurb": "Whether to render video frames during preroll",
+                        "conditionally-available": false,
                         "construct": true,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "signal-handoffs": {
                         "blurb": "Send a signal after rendering the buffer",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "false",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "stats": {
                         "blurb": "Sink Statistics",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "application/x-gst-base-sink-stats, average-rate=(double)0, dropped=(guint64)0, rendered=(guint64)0;",
+                        "mutable": "null",
                         "readable": true,
                         "type": "GstStructure",
                         "writable": false
                     },
                     "sync": {
                         "blurb": "Sync on the clock",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     },
                     "throttle-time": {
                         "blurb": "The time to keep between rendered buffers (0 = disabled)",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "18446744073709551615",
                         "min": "0",
+                        "mutable": "null",
                         "readable": true,
                         "type": "guint64",
                         "writable": true
                     },
                     "ts-offset": {
                         "blurb": "Timestamp offset in nanoseconds",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "0",
                         "max": "9223372036854775807",
                         "min": "-9223372036854775808",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint64",
                         "writable": true
                     },
                     "view-id": {
                         "blurb": "ID of the view component of interest to display",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "-1",
                         "max": "2147483647",
                         "min": "-1",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gint",
                         "writable": true
                     }
                 },
-                "rank": "primary",
+                "rank": "marginal",
                 "signals": {
                     "handoff": {
                         "args": [
                 "properties": {
                     "qos": {
                         "blurb": "Handle Quality-of-Service events from downstream",
+                        "conditionally-available": false,
                         "construct": false,
                         "construct-only": false,
+                        "controllable": false,
                         "default": "true",
+                        "mutable": "null",
                         "readable": true,
                         "type": "gboolean",
                         "writable": true
                     }
                 ]
             },
+            "GstVaapiEncoderTuneMPEG2": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "None",
+                        "name": "none",
+                        "value": "0"
+                    }
+                ]
+            },
             "GstVaapiHDRToneMap": {
                 "kind": "enum",
                 "values": [
                     }
                 ]
             },
+            "GstVaapiRateControlMPEG2": {
+                "kind": "enum",
+                "values": [
+                    {
+                        "desc": "Constant QP",
+                        "name": "cqp",
+                        "value": "1"
+                    },
+                    {
+                        "desc": "Constant bitrate",
+                        "name": "cbr",
+                        "value": "2"
+                    }
+                ]
+            },
             "GstVaapiRotation": {
                 "kind": "enum",
                 "values": [
index 8eda763..00d1597 100644 (file)
@@ -894,6 +894,9 @@ gst_vaapi_encoder_jpeg_class_init (GstVaapiEncoderJpegClass * klass)
 
   g_object_class_install_properties (object_class, ENCODER_JPEG_N_PROPERTIES,
       properties);
+
+  gst_type_mark_as_plugin_api (g_class_data.rate_control_get_type (), 0);
+  gst_type_mark_as_plugin_api (g_class_data.encoder_tune_get_type (), 0);
 }
 
 /**
index 58477d7..731b03e 100644 (file)
@@ -922,6 +922,9 @@ gst_vaapi_encoder_mpeg2_class_init (GstVaapiEncoderMpeg2Class * klass)
 
   g_object_class_install_properties (object_class, ENCODER_MPEG2_N_PROPERTIES,
       properties);
+
+  gst_type_mark_as_plugin_api (g_class_data.rate_control_get_type (), 0);
+  gst_type_mark_as_plugin_api (g_class_data.encoder_tune_get_type (), 0);
 }
 
 /**
index ce88cfb..99ffa46 100644 (file)
@@ -681,6 +681,9 @@ gst_vaapi_encoder_vp8_class_init (GstVaapiEncoderVP8Class * klass)
 
   g_object_class_install_properties (object_class, ENCODER_VP8_N_PROPERTIES,
       properties);
+
+  gst_type_mark_as_plugin_api (g_class_data.rate_control_get_type (), 0);
+  gst_type_mark_as_plugin_api (g_class_data.encoder_tune_get_type (), 0);
 }
 
 /**
index 0c66a29..e9b711b 100644 (file)
@@ -745,6 +745,9 @@ gst_vaapi_encoder_vp9_class_init (GstVaapiEncoderVP9Class * klass)
 
   g_object_class_install_properties (object_class, ENCODER_VP9_N_PROPERTIES,
       properties);
+
+  gst_type_mark_as_plugin_api (g_class_data.rate_control_get_type (), 0);
+  gst_type_mark_as_plugin_api (g_class_data.encoder_tune_get_type (), 0);
 }
 
 /**