I want to stop EncodeFrameAsync function early if it takes more than A (ms). How do I do it? What function I need to call so that it would not break on the next time that I submit another frame to media sdk for encoding.
EncodeFrameAsync() is not a blocking call, it returns immediately. To obtain the encoded frame, the user must call SyncOperation() using the generated syncpoint handle. The SyncOperation() call has a "wait" parameter which can be used specify desired timeout interval.
There is no feature to stop ongoing "single" frame encode operation. But if you need to abort or restart the encoder (affecting all frames in flight) then use the Close() or Reset() operations. Note that Reset() can be used for limited dynamic control of the encoder such as instantaneous control of bit rate without having to close and reinitialize the encoder.