From f1f148fe7cf55ab714fbf398bf97ef710bfd350c Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Thu, 29 Mar 2018 11:56:19 -0800 Subject: [PATCH] msdk: Don't set extended coding options for JPEG encode MJPEG doesn't have support for extended coding options https://bugzilla.gnome.org/show_bug.cgi?id=793873 --- sys/msdk/gstmsdkenc.c | 7 ++----- sys/msdk/gstmsdkenc.h | 2 ++ sys/msdk/gstmsdkh264enc.c | 3 +++ sys/msdk/gstmsdkh265enc.c | 3 +++ sys/msdk/gstmsdkmpeg2enc.c | 3 +++ sys/msdk/gstmsdkvp8enc.c | 3 +++ 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/sys/msdk/gstmsdkenc.c b/sys/msdk/gstmsdkenc.c index e23c1532e0..09c9be92dd 100644 --- a/sys/msdk/gstmsdkenc.c +++ b/sys/msdk/gstmsdkenc.c @@ -194,8 +194,8 @@ ensure_bitrate_control (GstMsdkEnc * thiz) } } -static void -ensure_extended_coding_options (GstMsdkEnc * thiz) +void +gst_msdkenc_ensure_extended_coding_options (GstMsdkEnc * thiz) { mfxExtCodingOption2 *option2 = &thiz->option2; mfxExtCodingOption3 *option3 = &thiz->option3; @@ -380,9 +380,6 @@ gst_msdkenc_init_encoder (GstMsdkEnc * thiz) /* ensure bitrate control parameters */ ensure_bitrate_control (thiz); - /* Enable ExtCodingOption2 */ - ensure_extended_coding_options (thiz); - /* allow subclass configure further */ if (klass->configure) { if (!klass->configure (thiz)) diff --git a/sys/msdk/gstmsdkenc.h b/sys/msdk/gstmsdkenc.h index 634a54139f..6eb155b4e2 100644 --- a/sys/msdk/gstmsdkenc.h +++ b/sys/msdk/gstmsdkenc.h @@ -184,6 +184,8 @@ gst_msdkenc_set_common_property (GObject * object, guint prop_id, gboolean gst_msdkenc_get_common_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +void +gst_msdkenc_ensure_extended_coding_options (GstMsdkEnc * thiz); G_END_DECLS diff --git a/sys/msdk/gstmsdkh264enc.c b/sys/msdk/gstmsdkh264enc.c index 367a137e14..dae8d9ef18 100644 --- a/sys/msdk/gstmsdkh264enc.c +++ b/sys/msdk/gstmsdkh264enc.c @@ -303,6 +303,9 @@ gst_msdkh264enc_configure (GstMsdkEnc * encoder) encoder->param.mfx.GopRefDist = 0; } + /* Enable Extended coding options */ + gst_msdkenc_ensure_extended_coding_options (encoder); + return TRUE; } diff --git a/sys/msdk/gstmsdkh265enc.c b/sys/msdk/gstmsdkh265enc.c index 0f6de89bec..7cd39061d6 100644 --- a/sys/msdk/gstmsdkh265enc.c +++ b/sys/msdk/gstmsdkh265enc.c @@ -98,6 +98,9 @@ gst_msdkh265enc_configure (GstMsdkEnc * encoder) * "i-frames" by incrementing the value by one in each case*/ encoder->param.mfx.IdrInterval += 1; + /* Enable Extended coding options */ + gst_msdkenc_ensure_extended_coding_options (encoder); + return TRUE; } diff --git a/sys/msdk/gstmsdkmpeg2enc.c b/sys/msdk/gstmsdkmpeg2enc.c index 948096ef97..0835faa61f 100644 --- a/sys/msdk/gstmsdkmpeg2enc.c +++ b/sys/msdk/gstmsdkmpeg2enc.c @@ -111,6 +111,9 @@ gst_msdkmpeg2enc_configure (GstMsdkEnc * encoder) encoder->param.mfx.CodecProfile = thiz->profile; encoder->param.mfx.CodecLevel = 0; + /* Enable Extended Coding options */ + gst_msdkenc_ensure_extended_coding_options (encoder); + return TRUE; } diff --git a/sys/msdk/gstmsdkvp8enc.c b/sys/msdk/gstmsdkvp8enc.c index c4a4ec083a..4c161564fc 100644 --- a/sys/msdk/gstmsdkvp8enc.c +++ b/sys/msdk/gstmsdkvp8enc.c @@ -135,6 +135,9 @@ gst_msdkvp8enc_configure (GstMsdkEnc * encoder) encoder->param.mfx.CodecProfile = thiz->profile; encoder->param.mfx.CodecLevel = 0; + /* Enable Extended Coding options */ + gst_msdkenc_ensure_extended_coding_options (encoder); + return TRUE; }