How can I achieve the lowest possible encode latency for 1366x768 or 1920x1080 source content that is generated on the fly at 30-60fps? I have used all the settings I saw in the low latency tutorial:
// Configuration for low latency
mfxEncParams.AsyncDepth = 1;
mfxEncParams.mfx.GopRefDist = 1;
memset(&extendedCodingOptions, 0, sizeof(extendedCodingOptions));
extendedCodingOptions.Header.BufferId = MFX_EXTBUFF_CODING_OPTION;
extendedCodingOptions.Header.BufferSz = sizeof(extendedCodingOptions);
extendedCodingOptions.MaxDecFrameBuffering = 1;
extendedBuffers = (mfxExtBuffer*)&extendedCodingOptions;
mfxEncParams.ExtParam = extendedBuffers;
mfxEncParams.NumExtParam = 1;
Also, there is a vpp color conversion from RGB4 to NV12 before the encode.
Right now, my timing indicates that SyncOperation takes 20ms on average, which seems very slow for the HD Graphics 4000?? Also, using GPA shows that the "Media Performance" is not near full utilization. The encoded content is needed in real time. Do you have any suggestions for speeding things up?