| export function admitVideoFrame(queue, frame) { | |
| if (!queue.decodeBusy) { | |
| queue.decodeBusy = true; | |
| return { ownsDecoder: true, replacedPending: false }; | |
| } | |
| const replacedPending = queue.pendingFrame !== null; | |
| queue.pendingFrame = frame; | |
| return { ownsDecoder: false, replacedPending }; | |
| } | |
| export function takePendingVideoFrame(queue) { | |
| const frame = queue.pendingFrame; | |
| queue.pendingFrame = null; | |
| return frame; | |
| } | |
| export function finishVideoFrameDecode(queue, ownsDecoder) { | |
| if (ownsDecoder) queue.decodeBusy = false; | |
| } | |