- From: Jan-Ivar Bruaroey <notifications@github.com>
- Date: Mon, 22 Nov 2021 14:00:41 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/issues/1186/975955559@github.com>
> - Treat this as a new pull ... (If branch 1 manages to catch up in the meantime and also starts pulling, we'll also enqueue it to branch 1.) Is "in the meantime" = anytime before a chunk newer than "new pull" is delivered to branch 2? (The pull promise is [unreliable](https://alvestrand.github.io/mediacapture-transform/#processorpull) here imho) If the underlying source's internal queue is not empty, this would seem to devolve into delivering different chunks to each branch, pulling at a rate faster than either of the branches would have individually. I don't think we ever want to steal chunks from the fast branch, even if upstream has backed up. > - Store the previous chunk, and enqueue it when branch 2 (eventually) starts pulling. This chunk can be overwritten when branch 1 pulls in more chunks in the meantime. This would appear to keep the pull rate = max(pull rate A, pull rate B), and expose mostly the same (cloned) frames, which seems desirable or at least easier to reason about. > This would imply that if `structuredClone` is true, we always need to clone the chunk. Which is a problem if explicit closure is needed. Yes, though we need to solve that somehow anyway for when a stream is errored. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/streams/issues/1186#issuecomment-975955559
Received on Monday, 22 November 2021 22:00:53 UTC