I'm trying to configure the Media SDK encoder dynamically, in other words I'd like to generate key frames, to make decision about a type of the next frame, its reference list, QP, etc.
I saw some bad news for me here https://software.intel.com/en-us/articles/video-conferencing-features-of-intel-media-software-develo... such "If the GOP pattern contains B-frames, the SDK encoder will not be able to follow the
mfxExtAVCRefListCtrl instructions (the instructions will be ignored)."
Is that true? There is a way to set mfxExtAVCRefListCtrl parameters per frame "on the fly" if the GOP yes contains B-frames?
1) “mfxExtAVCRefListCtrl” isn’t good way to control reference lists for B-frames.To handle ref lists in case of B-frames newer control “mfxExtAVCRefLists” should be used. It suits for any frame Inter type (P or B), and for both progressive and interlace cases.
2) But, for control over DBP (e.g. LTR insertion), application should keep using mfxExtAVCRefListCtrl. But it works for progressive only.
We do not an example showing this specific implementation. But, you can try and enable this feature on your own by making a function call to mfxExtAVCRefLists structure using sample_encode (https://software.intel.com/sites/default/files/managed/b7/7e/MediaSamples_Windows_2016.msi). Also, complete details about this structure members is available in mediaSDK manual Page No. 87 (https://software.intel.com/sites/default/files/managed/47/49/mediasdk-man.pdf). Let me know any questions.