I'm using the latest media sdk to decode an h264 bitstream, then vpp to convert the nv12 to rgb, and all is working well.
For timestamping purposes, I need to know the frametypes from which the resulting decoded frames were produced, since I only know the correct timestamps for I frames, and the framerate is variable.
Currently, when adding data to the bitstream I can check if the data contains an I frame, and set a timestamp, which gets passed through to the output. If the data doesnt contain an i frame I pass a 0 in as the timestamp, which is also passed through to the result, so i have a basic flag.
This seems to work, but it doesnt seem the right way to be going about things.
Is there any way I can detect the frametype, or even some other way of passing data from the bitstream to the resulting output ?
Please check Pg 157 of the Media SDK Manual where we have frametype enum in mfxbitstream structure. Also, there has been a related post for a similar issue - https://software.intel.com/en-us/forums/topic/402459 ;
Hope this helps.
Thanks for that. But, as far as I can tell, the bitstream's frametype only gets set when Encoding, not Decoding. Is this right ? I need to know the frametype for the decoded image.
I've tried checking the value in the 'simple decoder' example, after the sync, and it's always set to 0.
I've also tried setting the value when i add data into the bitstream, but it always gets reset to 0 on output.
Any ideas ?
Sorry for the late reply, this feature is not supported as of now. But engineering team is working on it and will be available in next release. The feature will be available for HW implementation only.