summaryrefslogtreecommitdiff
path: root/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/vaapi/gstvaapiencoder_h264.c')
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_h264.c70
1 files changed, 49 insertions, 21 deletions
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);