summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/gst_plugins_cache.json499
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c3
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c3
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_vp8.c3
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_vp9.c3
5 files changed, 508 insertions, 3 deletions
diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json
index e1a07b85..cab02a42 100644
--- a/docs/gst_plugins_cache.json
+++ b/docs/gst_plugins_cache.json
@@ -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"
}
@@ -33,69 +33,90 @@
"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
@@ -131,27 +152,36 @@
"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
@@ -191,276 +221,371 @@
"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
@@ -786,9 +911,12 @@
"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
@@ -824,12 +952,208 @@
"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"
@@ -865,224 +1189,290 @@
"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
@@ -1111,7 +1501,7 @@
"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"
}
@@ -1119,254 +1509,329 @@
"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": [
@@ -1408,9 +1873,12 @@
"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
@@ -1597,6 +2065,16 @@
}
]
},
+ "GstVaapiEncoderTuneMPEG2": {
+ "kind": "enum",
+ "values": [
+ {
+ "desc": "None",
+ "name": "none",
+ "value": "0"
+ }
+ ]
+ },
"GstVaapiHDRToneMap": {
"kind": "enum",
"values": [
@@ -1677,6 +2155,21 @@
}
]
},
+ "GstVaapiRateControlMPEG2": {
+ "kind": "enum",
+ "values": [
+ {
+ "desc": "Constant QP",
+ "name": "cqp",
+ "value": "1"
+ },
+ {
+ "desc": "Constant bitrate",
+ "name": "cbr",
+ "value": "2"
+ }
+ ]
+ },
"GstVaapiRotation": {
"kind": "enum",
"values": [
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c b/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
index 8eda7630..00d1597c 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
@@ -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);
}
/**
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
index 58477d7e..731b03e5 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
@@ -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);
}
/**
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
index ce88cfb6..99ffa461 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
@@ -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);
}
/**
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c b/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
index 0c66a295..e9b711b9 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
@@ -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);
}
/**