Recovering from ErrorOutOfMemory in covid decoder

I am developing a multi-channel video decoder using NVDEC and the 11.1.5 Cuda SDK. The current implementation works when decoding 3 channels of live video simultaneously but gets ovverrun on 4 channels. What I’m trying to achieve is some kind of error recovery if one of the channels gets ovverun, but so far nothing I’ve tried has worked
My goal is to ensure that a person viewing the video output can still see images even if performance is degraded.
Here is the error sequence:
When attempting to allocate a frame in device memory for decoding, the allocate call returns ErrorOutOfMemory.
When the thread processing this channel encounters this error, it sets a flag to discard all input PFrames until the next IFrame in an attempt to let his memory clear out.
Unfortunately, the decoder channel never recovers from the “out of memory” condition.
Is there a command or call I can use to force a dispose of the unreturned memory? On a hunch I tried sending an “End of Stream” but that accomplishes nothing. So far the only method of recovery I’ve found is to dispose amd recreate the decoder. Is there some other less drastic method?