From: Haihao Xiang Date: Tue, 3 Dec 2019 02:48:21 +0000 (+0800) Subject: msdkenc: add set_extra_params virtual method X-Git-Tag: 1.19.3~507^2~2421 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=84e234a8c7a0210f50ba6126f75e23926ef52df5;p=platform%2Fupstream%2Fgstreamer.git msdkenc: add set_extra_params virtual method set_extra_params is added to allow sub class to add extra mfx parameters for changed input frame or meta data --- diff --git a/sys/msdk/gstmsdkenc.c b/sys/msdk/gstmsdkenc.c index 74b7ecc..9e9fc54 100644 --- a/sys/msdk/gstmsdkenc.c +++ b/sys/msdk/gstmsdkenc.c @@ -1383,6 +1383,8 @@ gst_msdkenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame) gst_msdkenc_flush_frames (thiz, FALSE); gst_msdkenc_close_encoder (thiz); + klass->set_extra_params (thiz, frame); + // This will reinitialized the encoder but keep same input format. gst_msdkenc_set_format (encoder, NULL); } @@ -1684,6 +1686,12 @@ gst_msdkenc_need_reconfig (GstMsdkEnc * encoder, GstVideoCodecFrame * frame) } static void +gst_msdkenc_set_extra_params (GstMsdkEnc * encoder, GstVideoCodecFrame * frame) +{ + /* Do nothing */ +} + +static void gst_msdkenc_class_init (GstMsdkEncClass * klass) { GObjectClass *gobject_class; @@ -1696,6 +1704,7 @@ gst_msdkenc_class_init (GstMsdkEncClass * klass) klass->need_conversion = gst_msdkenc_need_conversion; klass->need_reconfig = gst_msdkenc_need_reconfig; + klass->set_extra_params = gst_msdkenc_set_extra_params; gobject_class->finalize = gst_msdkenc_finalize; diff --git a/sys/msdk/gstmsdkenc.h b/sys/msdk/gstmsdkenc.h index e209720..bce8139 100644 --- a/sys/msdk/gstmsdkenc.h +++ b/sys/msdk/gstmsdkenc.h @@ -177,6 +177,9 @@ struct _GstMsdkEncClass /* Return TRUE if sub class requires a recofnig */ gboolean (*need_reconfig) (GstMsdkEnc * encoder, GstVideoCodecFrame * frame); + + /* Allow sub class set extra frame parameters */ + void (*set_extra_params) (GstMsdkEnc * encoder, GstVideoCodecFrame * frame); }; struct _MsdkEncTask