From 9e977832c1761e3ad002fdfe14a9c3881a60bd45 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Wed, 1 Jul 2020 10:18:24 +0800 Subject: [PATCH] msdkh265enc: let MSDK select the encoding mode by default MSDK may support lowpower and non-lowpower modes, some features are available only under one of the two modes, which is hard to know for user, so let MSDK select the mode by default. Part-of: --- sys/msdk/gstmsdkh265enc.c | 15 +++++++++------ sys/msdk/gstmsdkh265enc.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/msdk/gstmsdkh265enc.c b/sys/msdk/gstmsdkh265enc.c index 46aa375da3..177dfda41c 100644 --- a/sys/msdk/gstmsdkh265enc.c +++ b/sys/msdk/gstmsdkh265enc.c @@ -48,7 +48,7 @@ enum PROP_MAX_SLICE_SIZE, }; -#define PROP_LOWPOWER_DEFAULT FALSE +#define PROP_LOWPOWER_DEFAULT -1 #define PROP_TILE_ROW_DEFAULT 1 #define PROP_TILE_COL_DEFAULT 1 #define PROP_MAX_SLICE_SIZE_DEFAULT 0 @@ -266,7 +266,8 @@ gst_msdkh265enc_configure (GstMsdkEnc * encoder) } encoder->param.mfx.LowPower = - (h265enc->lowpower ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF); + (h265enc->lowpower == 1 ? MFX_CODINGOPTION_ON : (h265enc->lowpower == + 0 ? MFX_CODINGOPTION_OFF : MFX_CODINGOPTION_UNKNOWN)); return TRUE; } @@ -388,7 +389,7 @@ gst_msdkh265enc_set_property (GObject * object, guint prop_id, switch (prop_id) { case PROP_LOW_POWER: - thiz->lowpower = g_value_get_boolean (value); + thiz->lowpower = g_value_get_int (value); break; case PROP_TILE_ROW: @@ -422,7 +423,7 @@ gst_msdkh265enc_get_property (GObject * object, guint prop_id, GValue * value, GST_OBJECT_LOCK (thiz); switch (prop_id) { case PROP_LOW_POWER: - g_value_set_boolean (value, thiz->lowpower); + g_value_set_int (value, thiz->lowpower); break; case PROP_TILE_ROW: @@ -524,8 +525,10 @@ gst_msdkh265enc_class_init (GstMsdkH265EncClass * klass) gst_msdkenc_install_common_properties (encoder_class); g_object_class_install_property (gobject_class, PROP_LOW_POWER, - g_param_spec_boolean ("low-power", "Low power", "Enable low power mode", - PROP_LOWPOWER_DEFAULT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_int ("low-power", "Low power", + "Enable low power mode(-1: default, 0: disable, 1: enable)", + -1, 1, PROP_LOWPOWER_DEFAULT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_TILE_ROW, g_param_spec_uint ("num-tile-rows", "number of rows for tiled encoding", diff --git a/sys/msdk/gstmsdkh265enc.h b/sys/msdk/gstmsdkh265enc.h index 7b62e4af74..d4c323cfda 100644 --- a/sys/msdk/gstmsdkh265enc.h +++ b/sys/msdk/gstmsdkh265enc.h @@ -55,7 +55,7 @@ struct _GstMsdkH265Enc { GstMsdkEnc base; - gboolean lowpower; + gint lowpower; gushort num_tile_rows; gushort num_tile_cols; guint max_slice_size;