In early thread, we can found the insert key frame function, that is, mfxStatus MFXVideoENCODE_EncodeFrameAsync( mfxSession session, mfxEncodeCtrl *ctrl, mfxFrameSurface1 *surface, mfxBitstream *bs, mfxSyncPoint *syncp);
And use mfxEncodeCtrl to control the I frame,
my new question is whom can invoke this MFXVideoENCODE_EncodeFrameAsyn API , or how to invoke this function in any place? There is no body invoke this function in all Intel Media sample ?
As for your first question, the EncodeFrameAsync function is called in sample_encode, you may check it out.
But the feature of key frame insertion, according to Media SDK developers, is not yet supported in Media SDK 2.0/SandyBridge encoders - this is a limitation. It will be available only starting with next generation of Media SDK.
If you represent a company could you please contact us via private post - so we could discuss schedules/plans/features in more details.