I have a transcode pipeline. Decode is done with custom Codec Plugin which I developed and loaded with MFXVideoSession::Register as dynamic library. vpp & encode is done with Intel Media Encoder (AVC). If single file is decoded it works fine. In case parallel decoding of different streams happen than some frames from one session get mixed into second session (random frames from different file got inserted). As I know each decode operation should happen in different session (MFXVideoSession::mfxSession), and plugin is loaded into separate memory.
While Initializing each session I checked and verify that MFXVideoSession & MFXVideoUSER pointer address is different on each init. Session parameter bIsJoin is set to false, so they are not joined.
Where do you think data sharing happens ?
Doesn't Media pipeline load separate copy of decode library for each transcode session ?