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);
}
}
static void
+gst_msdkenc_set_extra_params (GstMsdkEnc * encoder, GstVideoCodecFrame * frame)
+{
+ /* Do nothing */
+}
+
+static void
gst_msdkenc_class_init (GstMsdkEncClass * klass)
{
GObjectClass *gobject_class;
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;
/* 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