va: vp9enc: Correct the flags for registering properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437>
This commit is contained in:
He Junyan 2024-03-25 17:45:24 +08:00
parent fa50571d3b
commit 7ac9d26533

View file

@ -2883,6 +2883,8 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
gchar *long_name; gchar *long_name;
const gchar *name, *desc; const gchar *name, *desc;
gint n_props = N_PROPERTIES; gint n_props = N_PROPERTIES;
GParamFlags param_flags =
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT;
if (cdata->entrypoint == VAEntrypointEncSlice) { if (cdata->entrypoint == VAEntrypointEncSlice) {
desc = "VA-API based VP9 video encoder"; desc = "VA-API based VP9 video encoder";
@ -2971,8 +2973,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_KEYFRAME_INT] = g_param_spec_uint ("key-int-max", properties[PROP_KEYFRAME_INT] = g_param_spec_uint ("key-int-max",
"Key frame maximal interval", "Key frame maximal interval",
"The maximal distance between two keyframes. It decides the size of GOP" "The maximal distance between two keyframes. It decides the size of GOP"
" (0: auto-calculate)", 0, MAX_KEY_FRAME_INTERVAL, 60, " (0: auto-calculate)", 0, MAX_KEY_FRAME_INTERVAL, 60, param_flags);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:gf-group-size: * GstVaVp9Enc:gf-group-size:
@ -2982,8 +2983,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_GOLDEN_GROUP_SIZE] = g_param_spec_uint ("gf-group-size", properties[PROP_GOLDEN_GROUP_SIZE] = g_param_spec_uint ("gf-group-size",
"Golden frame group size", "Golden frame group size",
"The size of the golden frame group.", "The size of the golden frame group.",
1, MAX_GF_GROUP_SIZE, DEFAULT_GF_GROUP_SIZE, 1, MAX_GF_GROUP_SIZE, DEFAULT_GF_GROUP_SIZE, param_flags);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:ref-frames: * GstVaVp9Enc:ref-frames:
@ -2993,7 +2993,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_NUM_REF_FRAMES] = g_param_spec_uint ("ref-frames", properties[PROP_NUM_REF_FRAMES] = g_param_spec_uint ("ref-frames",
"Number of Reference Frames", "Number of Reference Frames",
"Number of reference frames, including both the forward and the backward", "Number of reference frames, including both the forward and the backward",
0, 3, 3, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); 0, 3, 3, param_flags);
/** /**
* GstVaVp9Enc:hierarchical-level: * GstVaVp9Enc:hierarchical-level:
@ -3004,7 +3004,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
g_param_spec_uint ("hierarchical-level", "The hierarchical level", g_param_spec_uint ("hierarchical-level", "The hierarchical level",
"The hierarchical level for golden frame group. Setting to 1 disables " "The hierarchical level for golden frame group. Setting to 1 disables "
"all future reference", 1, HIGHEST_PYRAMID_LEVELS, HIGHEST_PYRAMID_LEVELS, "all future reference", 1, HIGHEST_PYRAMID_LEVELS, HIGHEST_PYRAMID_LEVELS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); param_flags);
/** /**
* GstVaVp9Enc:min-qp: * GstVaVp9Enc:min-qp:
@ -3012,8 +3012,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
* The minimum quantizer value. * The minimum quantizer value.
*/ */
properties[PROP_MIN_QP] = g_param_spec_uint ("min-qp", "Minimum QP", properties[PROP_MIN_QP] = g_param_spec_uint ("min-qp", "Minimum QP",
"Minimum quantizer value for each frame", 0, 255, 0, "Minimum quantizer value for each frame", 0, 255, 0, param_flags);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:max-qp: * GstVaVp9Enc:max-qp:
@ -3021,8 +3020,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
* The maximum quantizer value. * The maximum quantizer value.
*/ */
properties[PROP_MAX_QP] = g_param_spec_uint ("max-qp", "Maximum QP", properties[PROP_MAX_QP] = g_param_spec_uint ("max-qp", "Maximum QP",
"Maximum quantizer value for each frame", 1, 255, 255, "Maximum quantizer value for each frame", 1, 255, 255, param_flags);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:qp: * GstVaVp9Enc:qp:
@ -3033,7 +3031,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
"In CQP mode, it specifies the basic quantizer value for all frames. " "In CQP mode, it specifies the basic quantizer value for all frames. "
"In ICQ and QVBR modes, it specifies a quality factor. In other " "In ICQ and QVBR modes, it specifies a quality factor. In other "
"modes, it is ignored", 0, 255, DEFAULT_BASE_QINDEX, "modes, it is ignored", 0, 255, DEFAULT_BASE_QINDEX,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); param_flags | GST_PARAM_MUTABLE_PLAYING);
/** /**
* GstVaVp9Enc:bitrate: * GstVaVp9Enc:bitrate:
@ -3049,8 +3047,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
*/ */
properties[PROP_BITRATE] = g_param_spec_uint ("bitrate", "Bitrate (kbps)", properties[PROP_BITRATE] = g_param_spec_uint ("bitrate", "Bitrate (kbps)",
"The desired bitrate expressed in kbps (0: auto-calculate)", "The desired bitrate expressed in kbps (0: auto-calculate)",
0, 2000 * 1024, 0, 0, 2000 * 1024, 0, param_flags | GST_PARAM_MUTABLE_PLAYING);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:target-percentage: * GstVaVp9Enc:target-percentage:
@ -3064,8 +3061,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_TARGET_PERCENTAGE] = g_param_spec_uint ("target-percentage", properties[PROP_TARGET_PERCENTAGE] = g_param_spec_uint ("target-percentage",
"target bitrate percentage", "target bitrate percentage",
"The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)", "The percentage for 'target bitrate'/'maximum bitrate' (Only in VBR)",
50, 100, 66, 50, 100, 66, param_flags | GST_PARAM_MUTABLE_PLAYING);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:cpb-size: * GstVaVp9Enc:cpb-size:
@ -3075,7 +3071,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_CPB_SIZE] = g_param_spec_uint ("cpb-size", properties[PROP_CPB_SIZE] = g_param_spec_uint ("cpb-size",
"max CPB size in Kb", "max CPB size in Kb",
"The desired max CPB size in Kb (0: auto-calculate)", 0, 2000 * 1024, 0, "The desired max CPB size in Kb (0: auto-calculate)", 0, 2000 * 1024, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); param_flags | GST_PARAM_MUTABLE_PLAYING);
/** /**
* GstVaVp9Enc:target-usage: * GstVaVp9Enc:target-usage:
@ -3087,7 +3083,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_TARGET_USAGE] = g_param_spec_uint ("target-usage", properties[PROP_TARGET_USAGE] = g_param_spec_uint ("target-usage",
"target usage", "target usage",
"The target usage to control and balance the encoding speed/quality", "The target usage to control and balance the encoding speed/quality",
1, 7, 4, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); 1, 7, 4, param_flags | GST_PARAM_MUTABLE_PLAYING);
/** /**
* GstVaVp9Enc:mbbrc: * GstVaVp9Enc:mbbrc:
@ -3098,8 +3094,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_MBBRC] = g_param_spec_enum ("mbbrc", properties[PROP_MBBRC] = g_param_spec_enum ("mbbrc",
"Macroblock level Bitrate Control", "Macroblock level Bitrate Control",
"Macroblock level Bitrate Control. It is not compatible with CQP", "Macroblock level Bitrate Control. It is not compatible with CQP",
GST_TYPE_VA_FEATURE, GST_VA_FEATURE_AUTO, GST_TYPE_VA_FEATURE, GST_VA_FEATURE_AUTO, param_flags);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:loop-filter-level: * GstVaVp9Enc:loop-filter-level:
@ -3109,8 +3104,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_LOOP_FILTER_LEVEL] = g_param_spec_int ("loop-filter-level", properties[PROP_LOOP_FILTER_LEVEL] = g_param_spec_int ("loop-filter-level",
"Loop Filter Level", "Loop Filter Level",
"Controls the deblocking filter strength, -1 means auto calculation", "Controls the deblocking filter strength, -1 means auto calculation",
-1, 63, -1, -1, 63, -1, param_flags | GST_PARAM_MUTABLE_PLAYING);
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT);
/** /**
* GstVaVp9Enc:sharpness-level: * GstVaVp9Enc:sharpness-level:
@ -3120,7 +3114,7 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
properties[PROP_SHARPNESS_LEVEL] = g_param_spec_uint ("sharpness-level", properties[PROP_SHARPNESS_LEVEL] = g_param_spec_uint ("sharpness-level",
"Sharpness Level", "Sharpness Level",
"Controls the deblocking filter sensitivity", "Controls the deblocking filter sensitivity",
0, 7, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); 0, 7, 0, param_flags | GST_PARAM_MUTABLE_PLAYING);
if (vavp9enc_class->rate_control_type > 0) { if (vavp9enc_class->rate_control_type > 0) {
properties[PROP_RATE_CONTROL] = g_param_spec_enum ("rate-control", properties[PROP_RATE_CONTROL] = g_param_spec_enum ("rate-control",
@ -3128,8 +3122,8 @@ gst_va_vp9_enc_class_init (gpointer g_klass, gpointer class_data)
"The desired rate control mode for the encoder", "The desired rate control mode for the encoder",
vavp9enc_class->rate_control_type, vavp9enc_class->rate_control_type,
vavp9enc_class->rate_control[0].value, vavp9enc_class->rate_control[0].value,
GST_PARAM_CONDITIONALLY_AVAILABLE | G_PARAM_READWRITE | GST_PARAM_CONDITIONALLY_AVAILABLE | GST_PARAM_MUTABLE_PLAYING
G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT); | param_flags);
} else { } else {
n_props--; n_props--;
properties[PROP_RATE_CONTROL] = NULL; properties[PROP_RATE_CONTROL] = NULL;