summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHe Junyan <junyan.he@hotmail.com>2019-08-30 18:39:32 +0800
committerHe Junyan <junyan.he@hotmail.com>2019-08-30 18:39:32 +0800
commitbc2f8fd19e924aa0e193708307326acd037691ce (patch)
treee21955dd9e345c5075e9f01e6afde7f2eaced010
parent46c8b425dd9e375ee25db5d3ac135a780be4a337 (diff)
libs: encoder: add flags to all encoder properties.
G_PARAM_CONSTRUCT make all properties init correctly, we do not need to init the properties manually. G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific flag, means need to expose the property to according encode class.
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder.c22
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder.h5
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h264.c70
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c96
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h265.c43
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c10
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c12
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_vp8.c18
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_vp9.c27
-rw-r--r--gst-libs/gst/vaapi/gstvaapifeienc_h264.c87
10 files changed, 272 insertions, 118 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder.c b/gst-libs/gst/vaapi/gstvaapiencoder.c
index 9a881560..bd56b8af 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder.c
@@ -1803,7 +1803,9 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
g_param_spec_uint ("bitrate",
"Bitrate (kbps)",
"The desired bitrate expressed in kbps (0: auto-calculate)",
- 0, 2000 * 1024, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 2000 * 1024, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoder:target-percentage:
@@ -1814,7 +1816,9 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
g_param_spec_uint ("target-percentage",
"Target Percentage",
"The desired target percentage of bitrate for variable rate "
- "controls.", 1, 100, 70, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ "controls.", 1, 100, 70,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoder:keyframe-period:
@@ -1825,7 +1829,9 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
g_param_spec_uint ("keyframe-period",
"Keyframe Period",
"Maximal distance between two keyframes (0: auto-calculate)", 0,
- G_MAXUINT32, 30, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_MAXUINT32, 30,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoder:quality-level:
@@ -1837,7 +1843,8 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
"Quality Level", "Encoding Quality Level "
"(lower value means higher-quality/slow-encode, "
" higher value means lower-quality/fast-encode)",
- 1, 7, 4, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 7, 4, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVapiEncoder:roi-default-delta-qp
@@ -1849,7 +1856,9 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
"The default delta-qp to apply to each Region of Interest"
"(lower value means higher-quality, "
"higher value means lower-quality)",
- -10, 10, -10, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ -10, 10, -10,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoder: trellis:
@@ -1862,7 +1871,8 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
g_param_spec_boolean ("trellis",
"Trellis Quantization",
"The Trellis Quantization Method of Encoder",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder.h b/gst-libs/gst/vaapi/gstvaapiencoder.h
index 69eb1c95..98c6bc1a 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder.h
+++ b/gst-libs/gst/vaapi/gstvaapiencoder.h
@@ -41,6 +41,11 @@ typedef struct _GstVaapiEncoder GstVaapiEncoder;
GType
gst_vaapi_encoder_get_type (void) G_GNUC_CONST;
+/* This user defined flag is added when the internal encoder
+ class wants to expose its property gparam spec to the according
+ encode class. */
+#define G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE (1 << 29)
+
/**
* GstVaapiEncoderStatus:
* @GST_VAAPI_ENCODER_STATUS_SUCCESS: Success.
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
index dd6a3a01..22ac7d23 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
@@ -3836,7 +3836,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:tune:
@@ -3849,7 +3850,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:max-bframes:
@@ -3859,7 +3861,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_MAX_BFRAMES] =
g_param_spec_uint ("max-bframes",
"Max B-Frames", "Number of B-frames between I and P", 0, 10, 0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:refs:
@@ -3870,7 +3873,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_NUM_REF_FRAMES] =
g_param_spec_uint ("refs", "Number of Reference Frames",
"Number of reference frames", 1, 8, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:init-qp:
@@ -3880,7 +3884,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_INIT_QP] =
g_param_spec_uint ("init-qp",
"Initial QP", "Initial quantizer value", 0, 51, 26,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:min-qp:
@@ -3890,7 +3895,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_MIN_QP] =
g_param_spec_uint ("min-qp",
"Minimum QP", "Minimum quantizer value", 0, 51, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:max-qp:
@@ -3902,7 +3908,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_MAX_QP] =
g_param_spec_uint ("max-qp",
"Maximum QP", "Maximum quantizer value", 0, 51, 51,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:qp-ip:
@@ -3914,7 +3921,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_int ("qp-ip",
"Difference of QP between I and P frame",
"Difference of QP between I and P frame (available only on CQP)",
- -51, 51, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ -51, 51, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:qp-ib:
@@ -3926,7 +3935,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_int ("qp-ib",
"Difference of QP between I and B frame",
"Difference of QP between I and B frame (available only on CQP)",
- -51, 51, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ -51, 51, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:num-slices:
@@ -3937,7 +3948,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_uint ("num-slices",
"Number of Slices",
"Number of slices per frame",
- 1, 200, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 200, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:cabac:
@@ -3950,7 +3963,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_boolean ("cabac",
"Enable CABAC",
"Enable CABAC entropy coding mode",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:dct8x8:
@@ -3963,7 +3977,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_boolean ("dct8x8",
"Enable 8x8 DCT",
"Enable adaptive use of 8x8 transforms in I-frames",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:mbbrc:
@@ -3976,7 +3991,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"Macroblock level Bitrate Control",
"Macroblock level Bitrate Control",
GST_VAAPI_TYPE_ENCODER_MBBRC, GST_VAAPI_ENCODER_MBBRC_AUTO,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:temporal-levels:
@@ -3988,7 +4004,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"temporal levels",
"Number of temporal levels in the encoded stream ",
MIN_TEMPORAL_LEVELS, MAX_TEMPORAL_LEVELS, MIN_TEMPORAL_LEVELS,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:prediction-type:
@@ -4001,7 +4018,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"Reference Picture Selection Modes",
gst_vaapi_encoder_h264_prediction_type (),
GST_VAAPI_ENCODER_H264_PREDICTION_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:cpb-length:
@@ -4011,7 +4029,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_CPB_LENGTH] =
g_param_spec_uint ("cpb-length",
"CPB Length", "Length of the CPB buffer in milliseconds",
- 1, 10000, DEFAULT_CPB_LENGTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 10000, DEFAULT_CPB_LENGTH,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:num-views:
@@ -4022,7 +4042,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_uint ("num-views",
"Number of Views",
"Number of Views for MVC encoding",
- 1, MAX_NUM_VIEWS, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, MAX_NUM_VIEWS, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:view-ids:
@@ -4035,7 +4057,8 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
g_param_spec_uint ("view-id-value", "View id value",
"view id values used for mvc encoding", 0, MAX_VIEW_ID, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:aud:
@@ -4057,9 +4080,12 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
properties[ENCODER_H264_PROP_COMPLIANCE_MODE] =
g_param_spec_enum ("compliance-mode",
"Spec Compliance Mode",
- "Tune Encode quality/performance by relaxing specification compliance restrictions",
+ "Tune Encode quality/performance by relaxing specification"
+ " compliance restrictions",
gst_vaapi_encoder_h264_compliance_mode_type (),
- GST_VAAPI_ENCODER_H264_COMPLIANCE_MODE_STRICT, G_PARAM_READWRITE);
+ GST_VAAPI_ENCODER_H264_COMPLIANCE_MODE_STRICT,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:quality_factor:
@@ -4071,7 +4097,9 @@ gst_vaapi_encoder_h264_class_init (GstVaapiEncoderH264Class * klass)
"Quality factor for ICQ/QVBR",
"quality factor for ICQ/QVBR bitrate control mode"
"(low value means higher-quality, higher value means lower-quality)",
- 1, 51, 26, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 51, 26,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_H264_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c b/gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c
index dab9d9db..dc7b0686 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c
@@ -4342,7 +4342,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_enum ("rate-control", "Rate Control", "Rate control mode",
fei_encoder_class_data.rate_control_get_type (),
fei_encoder_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:tune:
@@ -4355,7 +4356,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Encoder tuning option",
fei_encoder_class_data.encoder_tune_get_type (),
fei_encoder_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:max-bframes:
@@ -4365,7 +4367,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
properties[ENCODER_H264_FEI_PROP_MAX_BFRAMES] =
g_param_spec_uint ("max-bframes",
"Max B-Frames", "Number of B-frames between I and P", 0, 10, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:init-qp:
@@ -4375,7 +4378,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
properties[ENCODER_H264_FEI_PROP_INIT_QP] =
g_param_spec_uint ("init-qp",
"Initial QP", "Initial quantizer value", 0, 51, 26,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:min-qp:
@@ -4385,7 +4389,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
properties[ENCODER_H264_FEI_PROP_MIN_QP] =
g_param_spec_uint ("min-qp",
"Minimum QP", "Minimum quantizer value", 0, 51, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:max-qp:
@@ -4397,7 +4402,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
properties[ENCODER_H264_FEI_PROP_MAX_QP] =
g_param_spec_uint ("max-qp",
"Maximum QP", "Maximum quantizer value", 0, 51, 51,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:num-slices:
@@ -4408,7 +4414,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("num-slices",
"Number of Slices",
"Number of slices per frame",
- 1, 200, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 200, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:cabac:
@@ -4421,7 +4429,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_boolean ("cabac",
"Enable CABAC",
"Enable CABAC entropy coding mode",
- TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:dct8x8:
@@ -4434,7 +4443,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_boolean ("dct8x8",
"Enable 8x8 DCT",
"Enable adaptive use of 8x8 transforms in I-frames",
- TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:cpb-length:
@@ -4444,7 +4454,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
properties[ENCODER_H264_FEI_PROP_CPB_LENGTH] =
g_param_spec_uint ("cpb-length",
"CPB Length", "Length of the CPB buffer in milliseconds",
- 1, 10000, DEFAULT_CPB_LENGTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 10000, DEFAULT_CPB_LENGTH,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:num-views:
@@ -4455,7 +4467,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("num-views",
"Number of Views",
"Number of Views for MVC encoding",
- 1, MAX_NUM_VIEWS, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, MAX_NUM_VIEWS, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei:view-ids:
*
@@ -4467,7 +4481,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("view-id-value", "View id value",
"view id values used for mvc encoding", 0, MAX_VIEW_ID, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264: disable-fei:
@@ -4482,7 +4497,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_boolean ("disable-fei",
"Disable FEI Mode Encode",
"Disable Flexible Encoding Infrasturcture", FALSE,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
@@ -4498,7 +4514,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_boolean ("stats-out",
"stats out",
"Enable stats out for fei",
- TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:num_mv_predictors_l0:
@@ -4510,7 +4527,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Num mv predict l0",
"Indicate how many predictors should be used for l0,"
"only valid if MVPredictor input enabled",
- 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:num_mv_predictors_l1:
* Indicate how many mv predictors should be used for l1 frames.
@@ -4522,7 +4540,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Num mv predict l1",
"Indicate how many predictors should be used for l1,"
"only valid if MVPredictor input enabled",
- 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:search-window:
* Use predefined Search Window
@@ -4533,7 +4552,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Specify one of the predefined search path",
GST_VAAPI_TYPE_FEI_H264_SEARCH_WINDOW,
GST_VAAPI_FEI_H264_SEARCH_WINDOW_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:len-sp:
@@ -4543,7 +4563,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("len-sp",
"length of search path",
"This value defines number of search units in search path",
- 1, 63, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 63, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:search-path:
@@ -4556,7 +4578,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Specify search path",
GST_VAAPI_TYPE_FEI_H264_SEARCH_PATH,
GST_VAAPI_FEI_H264_SEARCH_PATH_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:ref-width:
@@ -4566,7 +4589,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("ref-width",
"ref width",
"Width of search region in pixel, must be multiple of 4",
- 4, 64, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 4, 64, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:ref-height:
@@ -4576,7 +4601,9 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_uint ("ref-height",
"ref height",
"Height of search region in pixel, must be multiple of 4",
- 4, 32, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 4, 32, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:submb-mask:
* Defines the bit-mask for disabling sub-partition
@@ -4588,7 +4615,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"defines the bit-mask for disabling sub mb partition",
GST_VAAPI_TYPE_FEI_H264_SUB_MB_PART_MASK,
GST_VAAPI_FEI_H264_SUB_MB_PART_MASK_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:subpel-mode:
@@ -4603,7 +4631,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Sub pixel precision for motion estimation",
GST_VAAPI_TYPE_FEI_H264_SUB_PEL_MODE,
GST_VAAPI_FEI_H264_SUB_PEL_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:intrapart-mask:
* Specifies which Luma Intra partition is enabled/disabled
@@ -4616,7 +4645,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"intra mode decision",
GST_VAAPI_TYPE_FEI_H264_INTRA_PART_MASK,
GST_VAAPI_FEI_H264_INTRA_PART_MASK_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:intra-sad:
@@ -4629,7 +4659,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Specifies distortion measure adjustments used"
"in the motion search SAD comparison for intra MB",
GST_VAAPI_TYPE_FEI_H264_SAD_MODE, GST_VAAPI_FEI_H264_SAD_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:inter-sad:
@@ -4642,7 +4673,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"Specifies distortion measure adjustments used"
"in the motion search SAD comparison for inter MB",
GST_VAAPI_TYPE_FEI_H264_SAD_MODE, GST_VAAPI_FEI_H264_SAD_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:adaptive-search:
@@ -4652,7 +4684,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
g_param_spec_boolean ("adaptive-search",
"adaptive-search",
"Enable adaptive search",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:multi-predL0:
* When set to 1, neighbor MV will be used as predictor for list L0,
@@ -4663,7 +4696,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"multi predL0",
"Enable multi prediction for ref L0 list, when set neighbor MV will be used"
"as predictor, no neighbor MV will be used otherwise",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264:multi-predL1:
@@ -4675,7 +4709,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"multi predL1",
"Enable multi prediction for ref L1 list, when set neighbor MV will be used"
"as predictor, no neighbor MV will be used otherwise",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH264Fei: fei-mode:
@@ -4694,7 +4729,8 @@ gst_vaapi_encoder_h264_fei_class_init (GstVaapiEncoderH264FeiClass * klass)
"FEI Encoding Mode",
"Functional mode of FEI Encoding",
GST_VAAPI_TYPE_FEI_MODE, GST_VAAPI_FEI_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class,
ENCODER_H264_FEI_N_PROPERTIES, properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
index 1d99f8ec..f17f2b88 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c
@@ -2894,7 +2894,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:tune:
@@ -2907,7 +2908,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
"Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:max-bframes:
@@ -2917,7 +2919,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_MAX_BFRAMES] =
g_param_spec_uint ("max-bframes",
"Max B-Frames", "Number of B-frames between I and P", 0, 10, 0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:refs:
@@ -2928,7 +2931,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_NUM_REF_FRAMES] =
g_param_spec_uint ("refs",
"Number of Reference Frames", "Number of reference frames", 1, 3, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:init-qp:
@@ -2938,7 +2942,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_INIT_QP] =
g_param_spec_uint ("init-qp",
"Initial QP", "Initial quantizer value", 0, 51, 26,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:min-qp:
@@ -2948,7 +2953,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_MIN_QP] =
g_param_spec_uint ("min-qp",
"Minimum QP", "Minimum quantizer value", 0, 51, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:max-qp:
@@ -2960,7 +2966,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_MAX_QP] =
g_param_spec_uint ("max-qp",
"Maximum QP", "Maximum quantizer value", 0, 51, 51,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:qp-ip:
@@ -2972,7 +2979,9 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
g_param_spec_int ("qp-ip",
"Difference of QP between I and P frame",
"Difference of QP between I and P frame (available only on CQP)",
- -51, 51, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ -51, 51, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:qp-ib:
@@ -2984,7 +2993,9 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
g_param_spec_int ("qp-ib",
"Difference of QP between I and B frame",
"Difference of QP between I and B frame (available only on CQP)",
- -51, 51, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ -51, 51, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/* FIXME: there seems to be issues with multi-slice encoding */
/**
@@ -2996,7 +3007,9 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
g_param_spec_uint ("num-slices",
"Number of Slices",
"Number of slices per frame",
- 1, 200, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 200, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:cpb-length:
@@ -3006,7 +3019,9 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
properties[ENCODER_H265_PROP_CPB_LENGTH] =
g_param_spec_uint ("cpb-length",
"CPB Length", "Length of the CPB buffer in milliseconds",
- 1, 10000, DEFAULT_CPB_LENGTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 10000, DEFAULT_CPB_LENGTH,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:mbbrc:
@@ -3019,7 +3034,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
"Macroblock level Bitrate Control",
"Macroblock level Bitrate Control",
GST_VAAPI_TYPE_ENCODER_MBBRC, GST_VAAPI_ENCODER_MBBRC_AUTO,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderH265:low_delay_b:
@@ -3031,7 +3047,8 @@ gst_vaapi_encoder_h265_class_init (GstVaapiEncoderH265Class * klass)
"Enable low delay b",
"Transforms P frames into predictive B frames."
" Enable it when P frames are not supported.",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_H265_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c b/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
index 674164bf..2848370c 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
@@ -871,7 +871,8 @@ gst_vaapi_encoder_jpeg_class_init (GstVaapiEncoderJpegClass * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_JPEG_PROP_TUNE] =
g_param_spec_enum ("tune",
@@ -879,12 +880,15 @@ gst_vaapi_encoder_jpeg_class_init (GstVaapiEncoderJpegClass * klass)
"Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_JPEG_PROP_QUALITY] =
g_param_spec_uint ("quality",
"Quality factor",
- "Quality factor", 0, 100, 50, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ "Quality factor", 0, 100, 50,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_JPEG_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
index 3a354b00..44c0baca 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
@@ -910,7 +910,8 @@ gst_vaapi_encoder_mpeg2_class_init (GstVaapiEncoderMpeg2Class * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderMpeg2:tune:
@@ -923,18 +924,21 @@ gst_vaapi_encoder_mpeg2_class_init (GstVaapiEncoderMpeg2Class * klass)
"Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_MPEG2_PROP_QUANTIZER] =
g_param_spec_uint ("quantizer",
"Constant Quantizer",
"Constant quantizer (if rate-control mode is CQP)",
- 2, 62, 8, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 2, 62, 8, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_MPEG2_PROP_MAX_BFRAMES] =
g_param_spec_uint ("max-bframes", "Max B-Frames",
"Number of B-frames between I and P", 0, 16, 0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_MPEG2_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
index 17b52ef0..2af6024d 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
@@ -667,23 +667,29 @@ gst_vaapi_encoder_vp8_class_init (GstVaapiEncoderVP8Class * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP8_PROP_TUNE] =
g_param_spec_enum ("tune", "Encoder Tuning", "Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP8_PROP_LOOP_FILTER_LEVEL] =
g_param_spec_uint ("loop-filter-level", "Loop Filter Level",
"Controls the deblocking filter strength", 0, 63,
- DEFAULT_LOOP_FILTER_LEVEL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ DEFAULT_LOOP_FILTER_LEVEL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP8_PROP_SHARPNESS_LEVEL] =
g_param_spec_uint ("sharpness-level", "Sharpness Level",
"Controls the deblocking filter sensitivity", 0, 7,
- DEFAULT_SHARPNESS_LEVEL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ DEFAULT_SHARPNESS_LEVEL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP8_PROP_YAC_Q_INDEX] =
g_param_spec_uint ("yac-qi",
@@ -691,7 +697,9 @@ gst_vaapi_encoder_vp8_class_init (GstVaapiEncoderVP8Class * klass)
"Quantization Table index for Luma AC Coefficients,"
" (in default case, yac_qi=4 for key frames and yac_qi=40"
" for P frames)",
- 0, 127, DEFAULT_YAC_QI, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 127, DEFAULT_YAC_QI,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_VP8_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c b/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
index 16be2780..66397867 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
@@ -427,8 +427,8 @@ update_ref_list (GstVaapiEncoderVP9 * encoder, GstVaapiEncPicture * picture,
gst_vaapi_surface_proxy_unref (ref);
break;
case GST_VAAPI_ENCODER_VP9_REF_PIC_MODE_1:
- gst_vaapi_surface_proxy_replace (&encoder->
- ref_list[encoder->ref_list_idx], ref);
+ gst_vaapi_surface_proxy_replace (&encoder->ref_list[encoder->
+ ref_list_idx], ref);
gst_vaapi_surface_proxy_unref (ref);
encoder->ref_list_idx = (encoder->ref_list_idx + 1) % GST_VP9_REF_FRAMES;
break;
@@ -709,7 +709,8 @@ gst_vaapi_encoder_vp9_class_init (GstVaapiEncoderVP9Class * klass)
"Rate Control", "Rate control mode",
g_class_data.rate_control_get_type (),
g_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP9_PROP_TUNE] =
g_param_spec_enum ("tune",
@@ -717,27 +718,32 @@ gst_vaapi_encoder_vp9_class_init (GstVaapiEncoderVP9Class * klass)
"Encoder tuning option",
g_class_data.encoder_tune_get_type (),
g_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP9_PROP_LOOP_FILTER_LEVEL] =
g_param_spec_uint ("loop-filter-level",
"Loop Filter Level",
"Controls the deblocking filter strength",
0, 63, DEFAULT_LOOP_FILTER_LEVEL,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP9_PROP_SHARPNESS_LEVEL] =
g_param_spec_uint ("sharpness-level",
"Sharpness Level",
"Controls the deblocking filter sensitivity",
0, 7, DEFAULT_SHARPNESS_LEVEL,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP9_PROP_YAC_Q_INDEX] =
g_param_spec_uint ("yac-qi",
"Luma AC Quant Table index",
"Quantization Table index for Luma AC Coefficients",
- 0, 255, DEFAULT_YAC_QINDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 255, DEFAULT_YAC_QINDEX,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
properties[ENCODER_VP9_PROP_REF_PIC_MODE] =
g_param_spec_enum ("ref-pic-mode",
@@ -745,7 +751,8 @@ gst_vaapi_encoder_vp9_class_init (GstVaapiEncoderVP9Class * klass)
"Reference Picture Selection Modes",
gst_vaapi_encoder_vp9_ref_pic_mode_type (),
GST_VAAPI_ENCODER_VP9_REF_PIC_MODE_0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiEncoderVP9:cpb-length:
@@ -757,7 +764,9 @@ gst_vaapi_encoder_vp9_class_init (GstVaapiEncoderVP9Class * klass)
properties[ENCODER_VP9_PROP_CPB_LENGTH] =
g_param_spec_uint ("cpb-length",
"CPB Length", "Length of the CPB_buffer/window_size in milliseconds",
- 1, 10000, DEFAULT_CPB_LENGTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 10000, DEFAULT_CPB_LENGTH,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, ENCODER_VP9_N_PROPERTIES,
properties);
diff --git a/gst-libs/gst/vaapi/gstvaapifeienc_h264.c b/gst-libs/gst/vaapi/gstvaapifeienc_h264.c
index a15a192c..0816bf96 100644
--- a/gst-libs/gst/vaapi/gstvaapifeienc_h264.c
+++ b/gst-libs/gst/vaapi/gstvaapifeienc_h264.c
@@ -2126,7 +2126,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"Rate Control", "Rate control mode",
fei_enc_class_data.rate_control_get_type (),
fei_enc_class_data.default_rate_control,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:tune:
@@ -2139,7 +2140,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"Encoder tuning option",
fei_enc_class_data.encoder_tune_get_type (),
fei_enc_class_data.default_encoder_tune,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:max-bframes:
@@ -2149,7 +2151,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
properties[FEI_H264_ENC_PROP_MAX_BFRAMES] =
g_param_spec_uint ("max-bframes",
"Max B-Frames", "Number of B-frames between I and P", 0, 10, 0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:init-qp:
@@ -2159,7 +2162,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
properties[FEI_H264_ENC_PROP_INIT_QP] =
g_param_spec_uint ("init-qp",
"Initial QP", "Initial quantizer value", 1, 51, 26,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:min-qp:
@@ -2169,7 +2173,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
properties[FEI_H264_ENC_PROP_MIN_QP] =
g_param_spec_uint ("min-qp",
"Minimum QP", "Minimum quantizer value", 1, 51, 1,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:num-slices:
@@ -2180,7 +2185,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("num-slices",
"Number of Slices",
"Number of slices per frame",
- 1, 200, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 200, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:cabac:
@@ -2193,7 +2200,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_boolean ("cabac",
"Enable CABAC",
"Enable CABAC entropy coding mode",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:dct8x8:
@@ -2206,7 +2214,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_boolean ("dct8x8",
"Enable 8x8 DCT",
"Enable adaptive use of 8x8 transforms in I-frames",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:cpb-length:
@@ -2216,7 +2225,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
properties[FEI_H264_ENC_PROP_CPB_LENGTH] =
g_param_spec_uint ("cpb-length",
"CPB Length", "Length of the CPB buffer in milliseconds",
- 1, 10000, DEFAULT_CPB_LENGTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 10000, DEFAULT_CPB_LENGTH,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:num-views:
@@ -2227,7 +2238,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("num-views",
"Number of Views",
"Number of Views for MVC encoding",
- 1, MAX_NUM_VIEWS, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, MAX_NUM_VIEWS, 1,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:view-ids:
*
@@ -2239,7 +2252,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("view-id-value", "View id value",
"view id values used for mvc encoding", 0, MAX_VIEW_ID, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:num-ref:
*
@@ -2249,7 +2263,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("num-ref",
"Num Ref",
"reference frame number",
- 1, 6, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 6, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:num_mv_predictors_l0:
@@ -2260,7 +2275,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("num-mvpredict-l0",
"Num mv predict l0",
"Indicate how many predictors should be used for l0",
- 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:num_mv_predictors_l1:
*
@@ -2270,7 +2286,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("num-mvpredict-l1",
"Num mv predict l1",
"Indicate how many predictors should be used for l1",
- 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 0, 3, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:search-window:
*/
@@ -2280,7 +2297,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"Specify one of the predefined search path",
GST_VAAPI_TYPE_FEI_H264_SEARCH_WINDOW,
GST_VAAPI_FEI_H264_SEARCH_WINDOW_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:len-sp:
*/
@@ -2288,7 +2306,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("len-sp",
"len sp",
"This value defines number of search units in search path",
- 1, 63, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 1, 63, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:search-path:
@@ -2299,7 +2319,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"Specify search path",
GST_VAAPI_TYPE_FEI_H264_SEARCH_PATH,
GST_VAAPI_FEI_H264_SEARCH_PATH_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:ref-width:
@@ -2308,7 +2329,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("ref-width",
"ref width",
"Width of search region in pixel, must be multiple of 4",
- 4, 64, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 4, 64, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:ref-height:
@@ -2317,7 +2340,9 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_uint ("ref-height",
"ref height",
"Height of search region in pixel, must be multiple of 4",
- 4, 32, 32, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ 4, 32, 32,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:submb-mask:
* Defines the bit-mask for disabling sub-partition
@@ -2329,7 +2354,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"defines the bit-mask for disabling sub mb partition",
GST_VAAPI_TYPE_FEI_H264_SUB_MB_PART_MASK,
GST_VAAPI_FEI_H264_SUB_MB_PART_MASK_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:subpel-mode:
@@ -2340,7 +2366,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"Sub pixel precision for motion estimation",
GST_VAAPI_TYPE_FEI_H264_SUB_PEL_MODE,
GST_VAAPI_FEI_H264_SUB_PEL_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:intrapart-mask:
*/
@@ -2350,7 +2377,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"What block and sub-block partitions are disabled for intra MBs",
GST_VAAPI_TYPE_FEI_H264_INTRA_PART_MASK,
GST_VAAPI_FEI_H264_INTRA_PART_MASK_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:intra-sad:
*/
@@ -2359,7 +2387,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"intra sad",
"Specifies distortion measure adjustments used in the motion search SAD comparison for intra MB",
GST_VAAPI_TYPE_FEI_H264_SAD_MODE, GST_VAAPI_FEI_H264_SAD_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:inter-sad:
@@ -2369,7 +2398,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
"inter sad",
"Specifies distortion measure adjustments used in the motion search SAD comparison for inter MB",
GST_VAAPI_TYPE_FEI_H264_SAD_MODE, GST_VAAPI_FEI_H264_SAD_MODE_DEFAULT,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:adaptive-search:
@@ -2378,7 +2408,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_boolean ("adaptive-search",
"adaptive-search",
"Enable adaptive search",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:multi-predL0:
@@ -2387,7 +2418,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_boolean ("multi-predL0",
"multi predL0",
"Enable multi prediction for ref L0 list",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
/**
* GstVaapiFeiEncH264:multi-predL0:
@@ -2396,7 +2428,8 @@ gst_vaapi_feienc_h264_class_init (GstVaapiFeiEncH264Class * klass)
g_param_spec_boolean ("multi-predL1",
"multi predL1",
"Enable multi prediction for ref L1 list",
- FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT |
+ G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE);
g_object_class_install_properties (object_class, FEI_H264_ENC_N_PROPERTIES,
properties);