I call a h264 compression with MFXVideoENCODE_EncodedFrameAsynch() with EncoderOrder set to 0 in the mfxInfoMFX. (so frames are sent in display order)
After a MFXVideoENCODE_SyncOperation() the frames are received in encoded order.
I would like to know the display order of the frame I received from the MFXVideoENCODE_SyncOperation(), where can I found this information? I don`t find this information into the mfxBitstream structure?
For exemple if I encode a I0 B1 B2 P3 B4 B5 P6 stream in display order, After a SyncOperation() I receive the I P B B P B B but I would like to know the display order associated to each frame : I0 P3 B1 B2 P6 B4 B5.
Using Media SDK 2012 R3 I recommend using "TimeStamp" as you method of determining how frames are reordered. This of course assumes that you do provide a unique timestamp to encoder for each frame.
For Media SDK 2013 you also have the option to use the new "DecodeTimeStamp" parameter to help determine the order.