I would like to use the Media SDK + gstreamer plugin for h264 decode of live RTSP streams.
I am currently testing 2018 R2 release with gstreamer plugin on Windows + Skylake (HD 530)
I see a lot of dropped frames, and I see in the plugin code
DecodedOrder = 1
but this is deprecated. Does this still work ? Because I still see dropped frames when this parameters is set to 1.
- Development Tools
- Intel® Media SDK
- Intel® Media Server Studio
- Media Processing
Yes, officially it's deprecated. However the code which handles DecodedOrder is not removed and, in general, should work. BTW, what is the reason you use DecodedOrder mode?
Thanks, Dmitry. I am trying to reduce latency as much as possible for a live stream. So, DecodeOrder=1 will prevent re-ordering the frames. See also https://software.intel.com/en-us/forums/intel-media-sdk/topic/704136 for a similar constraint.
I remember that topic. I described what brings output latency in https://software.intel.com/en-us/forums/intel-media-sdk/topic/704136#comment-1907522 . Latency comes not from multi-threading but from reordering and DPB bumping logic which works according to the information from the bistream. DecodedOrder mode indeed allows to disable this logic but it's actually a hack. This is the reason why DecodedOrder has been deprecated. On the other hand, I know that MSDK users use DecodedOrder in applications.
Please attach the bistream where you observe dropped frames, I'll take a look.
Thanks very much, Dmitry. When I run a software decoder (libav) then there is no frame dropping, so apparently latency in software is better than hardware. But,of course, I am using GStreamer, so there are many other moving parts besides decoder.