From f076f1948ecbea7162d7f6c98ed8a9e8b2bdacef Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Wed, 14 Feb 2018 16:27:47 +0000 Subject: [PATCH] msdk: encode: Add property to set slice/partitioning Adding a new property num-slices to set the number of slices/partitions per frame. Adding it as a general property for all codecs (except jpeg). https://bugzilla.gnome.org/show_bug.cgi?id=791637 --- sys/msdk/gstmsdkenc.c | 3 +++ sys/msdk/gstmsdkenc.h | 1 + 2 files changed, 4 insertions(+) diff --git a/sys/msdk/gstmsdkenc.c b/sys/msdk/gstmsdkenc.c index b2e5a5a195..2219a50318 100644 --- a/sys/msdk/gstmsdkenc.c +++ b/sys/msdk/gstmsdkenc.c @@ -94,6 +94,7 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", #define PROP_REF_FRAMES_DEFAULT 1 #define PROP_I_FRAMES_DEFAULT 0 #define PROP_B_FRAMES_DEFAULT 0 +#define PROP_NUM_SLICES_DEFAULT 0 #define GST_MSDKENC_RATE_CONTROL_TYPE (gst_msdkenc_rate_control_get_type()) static GType @@ -293,6 +294,7 @@ gst_msdkenc_init_encoder (GstMsdkEnc * thiz) thiz->param.mfx.GopPicSize = thiz->gop_size; thiz->param.mfx.GopRefDist = thiz->b_frames + 1; thiz->param.mfx.IdrInterval = thiz->i_frames; + thiz->param.mfx.NumSlice = thiz->num_slices; thiz->param.mfx.NumRefFrame = thiz->ref_frames; thiz->param.mfx.EncodedOrder = 0; /* Take input frames in display order */ @@ -1302,6 +1304,7 @@ gst_msdkenc_init (GstMsdkEnc * thiz) thiz->ref_frames = PROP_REF_FRAMES_DEFAULT; thiz->i_frames = PROP_I_FRAMES_DEFAULT; thiz->b_frames = PROP_B_FRAMES_DEFAULT; + thiz->num_slices = PROP_NUM_SLICES_DEFAULT; } /* gst_msdkenc_set_common_property: diff --git a/sys/msdk/gstmsdkenc.h b/sys/msdk/gstmsdkenc.h index 6813099be1..baccb7d5cc 100644 --- a/sys/msdk/gstmsdkenc.h +++ b/sys/msdk/gstmsdkenc.h @@ -134,6 +134,7 @@ struct _GstMsdkEnc guint ref_frames; guint i_frames; guint b_frames; + guint num_slices; gboolean reconfig; };