diff options
Diffstat (limited to 'sys/msdk/gstmsdkh265enc.c')
-rw-r--r-- | sys/msdk/gstmsdkh265enc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/msdk/gstmsdkh265enc.c b/sys/msdk/gstmsdkh265enc.c index 7fc596807..bd8914f0e 100644 --- a/sys/msdk/gstmsdkh265enc.c +++ b/sys/msdk/gstmsdkh265enc.c @@ -96,7 +96,7 @@ enum #define PROP_DBLK_IDC_DEFAULT 0 #define RAW_FORMATS "NV12, I420, YV12, YUY2, UYVY, BGRA, BGR10A2_LE, P010_10LE, VUYA" -#define PROFILES "main, main-10, main-444, main-still-picture" +#define PROFILES "main, main-10, main-444, main-still-picture, main-10-still-picture" #define COMMON_FORMAT "{ " RAW_FORMATS " }" #define PRFOLIE_STR "{ " PROFILES " }" @@ -326,7 +326,15 @@ gst_msdkh265enc_configure (GstMsdkEnc * encoder) encoder->param.mfx.CodecProfile = MFX_PROFILE_HEVC_MAIN10; else if (!strcmp (h265enc->profile_name, "main-still-picture")) encoder->param.mfx.CodecProfile = MFX_PROFILE_HEVC_MAINSP; - else if (!strcmp (h265enc->profile_name, "main-444") || + else if (!strcmp (h265enc->profile_name, "main-10-still-picture")) { + encoder->param.mfx.CodecProfile = MFX_PROFILE_HEVC_MAIN10; + h265enc->ext_param.Header.BufferId = MFX_EXTBUFF_HEVC_PARAM; + h265enc->ext_param.Header.BufferSz = sizeof (h265enc->ext_param); + h265enc->ext_param.GeneralConstraintFlags = + MFX_HEVC_CONSTR_REXT_ONE_PICTURE_ONLY; + gst_msdkenc_add_extra_param (encoder, + (mfxExtBuffer *) & h265enc->ext_param); + } else if (!strcmp (h265enc->profile_name, "main-444") || !strcmp (h265enc->profile_name, "main-422-10") || !strcmp (h265enc->profile_name, "main-444-10") || !strcmp (h265enc->profile_name, "main-12")) |