diff options
author | Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> | 2021-09-15 16:32:02 +0800 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-09-18 06:04:56 +0000 |
commit | 788826b2056c92180da1f93565d67498227ca9a0 (patch) | |
tree | 0965960ccc9a77504b49d35392682e24321e8b93 /sys/msdk/gstmsdkh265enc.c | |
parent | afa1c19b37882a165fc0327ac103851edb95f7ec (diff) | |
download | gstreamer-plugins-bad-788826b2056c92180da1f93565d67498227ca9a0.tar.gz |
msdkh265enc: Add profile main10 still picture for hevc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2524>
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")) |