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.
This commit is contained in:
He Junyan 2019-08-30 18:39:32 +08:00
parent 46c8b425dd
commit bc2f8fd19e
10 changed files with 272 additions and 118 deletions

View file

@ -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);

View file

@ -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.

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);