trySubmit
Hands a decoded frame over without suspending.
For a caller that must stay able to answer something else while the queue is full, which is what the engine's decoder worker is: it has to be able to park for a seek, and it cannot do that from inside a wait. Retrying this is safe in a way that wrapping submit in a timeout is not, because a handover that has already happened cannot be reported as not having happened. A timeout around submit can discard the result of a completed handover, and the caller then offers the queue a frame it already holds, which is closed twice.
Return
false when the queue is full: the caller still owns the frame and should try again. True when the frame is no longer the caller's, whether the queue took it or the queue is closed and the frame was released.