I quotesome comment from our expert:
There is internal buffer which called DPB (Decoded Picture Buffer). By standard, decoder couldn't return frame until DPB is full enough (It'sneeded for correct reordering frames process). So, when there are empty slots in DPB GetFrame function returns
UMC_NOT_ENOUGH_DATA. When DPB is full enough GetFrame return UMC_OK and you can use returned frame.
For using H.264 decoder in video conference applicationsit's recommended to manually adjust DPB buffer size.
Size of DPB depends from level_idc (IPP H.264 encoder parameter) and picture's size.
For example, picture size is 320x280. When you set level_idc to 30 then DPB size will be ~12 frames. In this case, decoder could return first frame to application only after it's received and decode 12 frames. As result, long delay occurs. When you set level_idc to 10, then DPB size will be ~1-2 frames and delay will be short.