diff options
author | Sreerenj Balachandran <sreerenj.balachandran@intel.com> | 2018-02-14 14:29:57 +0000 |
---|---|---|
committer | Sreerenj Balachandran <sreerenj.balachandran@intel.com> | 2018-02-20 12:39:02 -0900 |
commit | a165a1a1a9c9aaad6dcd178a75086864ec438a8f (patch) | |
tree | 74402c5480bf0883f45b47e85cd1c82938653911 /sys | |
parent | fa0911c3f69de258d10c104991c7bad597ef83a8 (diff) | |
download | gstreamer-plugins-bad-a165a1a1a9c9aaad6dcd178a75086864ec438a8f.tar.gz |
msdk: encoder: h265: generalize the behavior of "i-frames" property
We have the property "i-frames" to set the IDR interval in a
gop. Unfortunately MSDK HEVC encoder behaves bit differently
for IdrInterval field, IdrInteval == 1 indicate every
I-frame should be an IDR (which is IdrInterval == 0 for other codecs),
IdrInteval == 2 means every other I-frame is an IDR
(which is IdrInterval == 1 for other codecs) etc.
So we generalize the behaviour of property "i-frames" by
incrementing the value by one in each case (only for HEVC).
https://bugzilla.gnome.org/show_bug.cgi?id=791637
Diffstat (limited to 'sys')
-rw-r--r-- | sys/msdk/gstmsdkh265enc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/msdk/gstmsdkh265enc.c b/sys/msdk/gstmsdkh265enc.c index d0361e4a3..0f6de89be 100644 --- a/sys/msdk/gstmsdkh265enc.c +++ b/sys/msdk/gstmsdkh265enc.c @@ -91,6 +91,13 @@ gst_msdkh265enc_configure (GstMsdkEnc * encoder) encoder->param.mfx.CodecId = MFX_CODEC_HEVC; encoder->param.mfx.CodecProfile = MFX_PROFILE_HEVC_MAIN; + /* IdrInterval field of MediaSDK HEVC encoder behaves differently + * than other encoders. IdrInteval == 1 indicate every + * I-frame should be an IDR, IdrInteval == 2 means every other + * I-frame is an IDR etc. So we generalize the behaviour of property + * "i-frames" by incrementing the value by one in each case*/ + encoder->param.mfx.IdrInterval += 1; + return TRUE; } |