We purchased the IPP SDK from Intel about 3 years ago and built a direct show filter to use the SDK to decode H264 video. We use the SDK as a static library. Our decoder filter is based on the w_ipp-samples_p_7.0.5.059 sample from Intel.
We ran into a problem recently when we tried to decode video streams in 1080p at 30 fps in 4 mbps or higher. The decoder shows stutter video when it tries to decode an I-Frame. For example, we see cars pause and resume in our video of moving cars every time an I-Frame needs to be rendered. The I-Frame size is between 170K to 200K bytes. We found that the pauses might come from the GetFrame() call. It takes the function about 100 milliseconds to decode an I-Frame.
Is this a known problem? Is there a new version of IPP fixes the problem? Any suggestions and help would be greatly appreciated.
Have you got the chance to check the media SDK product? https://software.intel.com/en-us/forums/intel-media-sdk
Video codec support was in old IPP releases, and users are recommended to move to the product. Besides the CPU optimization, Intel media sdk also include the GPU optimization for the video decoding.
Thanks for writing back. I downloaded the Intel Media Samples 126.96.36.199 and did a quick test. I replaced our decoder from graph with the h264_dec_filter.dll decoder that comes with the sample package. The problem doesn't seem to go away.
If we move to use the Intel media SDK, do we need to rewrite all our filters to use Microsoft media foundation? Changing from IPP to media SDK sounds like a long term solution. Does the media SDK support 4K video?