Am I right the technique below is allowed?:
Push N frames to processing:
MFXVideoENCODE_EncodeFrameAsync( ..., bs1, syncp1 );
MFXVideoENCODE_EncodeFrameAsync( ..., bs2, syncp2 );
MFXVideoENCODE_EncodeFrameAsync( ..., bsN, syncpN );
Don't wait sequentially for syncp1, syncp2, ..., syncpN - wait once for syncpN only instead.
MFXVideoCORE_SyncOperation( ..., syncpN, ... );
Are all bs1...bsN guaranteed to be valid/filled/can_be_grabbed after successfull SyncOperation for syncpN (and no need to call SyncOperation for syncp1, syncp2, ..., syncpN-1)?
And additional questions.
Is it possible to get MFX_ERR_ABORTED from SyncOperation(syncpN) while one or more previous syncp are still in MFX_WRN_IN_EXECUTION?
Is it possible to get MFX_ERR_NONE from SyncOperation(syncpN) and MFX_ERR_ABORTED for one or more previous syncp?